開始爬蟲之旅,雖然是簡(jiǎn)單的爬取本地網(wǎng)頁,操作起來還是不熟練,但總算完成了,參考了優(yōu)秀作業(yè),把自己的代碼優(yōu)化了一下
展示結(jié)果

Paste_Image.png
我的代碼
from bs4 import BeautifulSoup
#本地網(wǎng)頁路徑
path='/Users/zorro/Desktop/Plan-for-combating-master/week1/1_2/1_2answer_of_homework/1_2_homework_required/index.html'
#讀取本地網(wǎng)頁數(shù)據(jù)
with open(path,'r') as wb_data:
Soup=BeautifulSoup(wb_data,'lxml')
images=Soup.select(
'body > div > div > div.col-md-9 > div > div > div > img')
prices=Soup.select(
'body > div > div > div.col-md-9 > div > div > div > div.caption > h4.pull-right')
titles=Soup.select(
'body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a')
reviews=Soup.select(
'body > div > div > div.col-md-9 > div > div > div > div.ratings > p.pull-right')
stars=Soup.select(
'body > div > div > div.col-md-9 > div > div > div > div.ratings > p:nth-of-type(2)')
for title,price,review,image,star in zip(titles,prices,reviews,images,stars): #通過for循環(huán),把每個(gè)元素裝到字典里
# 據(jù)分析,星級(jí)數(shù)據(jù)儲(chǔ)存在span標(biāo)簽中的CSS為'glyphicon glyphicon-star',通過統(tǒng)計(jì)數(shù)量來得到星級(jí)數(shù)
star_num=len(star.find_all("span", class_='glyphicon glyphicon-star'))
star_logo='★'*star_num+'☆'*(5-star_num) #參考優(yōu)秀作業(yè),把星級(jí)數(shù)據(jù)可視化,轉(zhuǎn)變?yōu)樾切? data={
'title':title.get_text(),
'price':price.get_text(),
'review':review.get_text().split()[0], #這里用split函數(shù)把瀏覽量與review分割開,并取首個(gè)元素,即只取數(shù)字
'image':image.get('src'), #獲取圖片的src屬性,得到圖片的地址
'star': star_logo
}
print(data)
總結(jié)
1.在導(dǎo)入BeautifulSoup的時(shí)候,遇到的點(diǎn)麻煩,多虧老師的幫忙解決了;
2.通過這個(gè)項(xiàng)目,發(fā)現(xiàn)自己的基礎(chǔ)還不扎實(shí),需要重新學(xué)習(xí)基礎(chǔ);
3.只想著把項(xiàng)目完成,卻沒想做得更好,這個(gè)要改進(jìn),看完優(yōu)秀作業(yè)之后,修改了自己的代碼,希望自己的代碼可讀性更高,代碼運(yùn)行結(jié)果更美觀;