美汤加工
Beautiful Soup processing
我正在尝试从 http://www.indiacom.com/yellow-pages/travel-agencies-and-services/ 中删除不同旅行社的名称和评级
这是我的代码
from bs4 import BeautifulSoup
import requests
url="http://www.indiacom.com/yellow-pages/travel-agencies-and-services/"
r=requests.get(url)
soup=BeautifulSoup(r.content)
links=soup.find_all("a")
#for link in links:
# if"http" in link.get("href"):
# print("<a href='%s'>%s</a>"%(link.get("href"),link.text))
L=[]
g_data=soup.find_all("div",{"class": "Info_listing"})
for item in g_data:
L.append(item.contents[3].text)
# L.append(item.text)
for index in L:
print(index)
#print(L[2])
我正在将名称和评级保存在 list.Now 我想根据评级进行排序。我该怎么做,因为如果有人被评级,他们的评级就会显示,但如果有人没有被评级,它就会出现 "Be the first to rate" 那么我如何根据评级
进行排序
迭代列表,构建包含列表名称和评级的元组列表。使用 sorted()
按评级值排序。将 Be The First To Rate
视为 0 评分:
from operator import itemgetter
listings = []
for item in soup.select("div.Details_listing"):
name = item.a.text
rating = item.find('div', id='total_ratings_details').text
rating = 0 if rating.startswith('Be The First To Rate') else float(rating.split(' ')[0])
listings.append((name, rating))
print sorted(listings, key=itemgetter(1))
打印:
[
(u'Jasvinder Tours And Travels', 0),
...
(u'The Royal Tours & Travels', 2.9),
(u'Preeti Travels & Transport', 4.4)
]
我正在尝试从 http://www.indiacom.com/yellow-pages/travel-agencies-and-services/ 中删除不同旅行社的名称和评级 这是我的代码
from bs4 import BeautifulSoup
import requests
url="http://www.indiacom.com/yellow-pages/travel-agencies-and-services/"
r=requests.get(url)
soup=BeautifulSoup(r.content)
links=soup.find_all("a")
#for link in links:
# if"http" in link.get("href"):
# print("<a href='%s'>%s</a>"%(link.get("href"),link.text))
L=[]
g_data=soup.find_all("div",{"class": "Info_listing"})
for item in g_data:
L.append(item.contents[3].text)
# L.append(item.text)
for index in L:
print(index)
#print(L[2])
我正在将名称和评级保存在 list.Now 我想根据评级进行排序。我该怎么做,因为如果有人被评级,他们的评级就会显示,但如果有人没有被评级,它就会出现 "Be the first to rate" 那么我如何根据评级
进行排序迭代列表,构建包含列表名称和评级的元组列表。使用 sorted()
按评级值排序。将 Be The First To Rate
视为 0 评分:
from operator import itemgetter
listings = []
for item in soup.select("div.Details_listing"):
name = item.a.text
rating = item.find('div', id='total_ratings_details').text
rating = 0 if rating.startswith('Be The First To Rate') else float(rating.split(' ')[0])
listings.append((name, rating))
print sorted(listings, key=itemgetter(1))
打印:
[
(u'Jasvinder Tours And Travels', 0),
...
(u'The Royal Tours & Travels', 2.9),
(u'Preeti Travels & Transport', 4.4)
]