我试图从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中,我想根据评级进行排序。我如何做到这一点,因为如果一个人被评级,他们的评级会显示出来,但是如果某人没有被评级,它会“第一个打分”,所以我如何根据评分进行排序?
发布于 2015-03-23 19:35:58
迭代列表,构建包含列表名称和评级的元组列表。使用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)
]https://stackoverflow.com/questions/29218725
复制相似问题