有了解析網(wǎng)頁的基礎(chǔ),感覺難度不大侣姆,主要時(shí)間花在了解決評分星級數(shù)量上
最終實(shí)現(xiàn)結(jié)果
屏幕快照 2016-08-30 下午8.10.36.jpg
我的代碼
from bs4 import BeautifulSoup
with open('index.html','r') as f:
soup=BeautifulSoup(f.read(),'lxml')
titles=soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a')
prices=soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4.pull-right')
images=soup.select('body > div > div > div.col-md-9 > div > div > div > img')
reviews=soup.select('body > div > div > div.col-md-9 > div > div > div > div.ratings > p.pull-right')
stars=soup.select('div > div.ratings > p:nth-of-type(2)')
# for star in stars:
# print(star)
for title,price,image,review,star in zip(titles,prices,images,reviews,stars):
star_level=len(star.find_all("span", class_="glyphicon glyphicon-star"))
data={
'title':title.get_text(),
'price':price.get_text(),
'image':image.get('src'),
'review':review.get_text(),
'stars':star_level
}
print(data)
總結(jié)
- 開始在統(tǒng)計(jì)星星數(shù)量的時(shí)候有想到用len()函數(shù)生真,所以問題就變成了找有幾個(gè)星星標(biāo)簽,第一次想到了循環(huán)
- 立刻覺得實(shí)現(xiàn)起來過于麻煩捺宗,參考文檔中的find_all的資料柱蟀,可以按照需求找標(biāo)簽得到列表,于是解決