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

Paste_Image.png
我的代碼
from bs4 import BeautifulSoup
#本地網頁路徑
path='/Users/zorro/Desktop/Plan-for-combating-master/week1/1_2/1_2answer_of_homework/1_2_homework_required/index.html'
#讀取本地網頁數據
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),把每個元素裝到字典里
# 據分析,星級數據儲存在span標簽中的CSS為'glyphicon glyphicon-star',通過統計數量來得到星級數
star_num=len(star.find_all("span", class_='glyphicon glyphicon-star'))
star_logo='★'*star_num+'☆'*(5-star_num) #參考優(yōu)秀作業(yè),把星級數據可視化,轉變?yōu)樾切? data={
'title':title.get_text(),
'price':price.get_text(),
'review':review.get_text().split()[0], #這里用split函數把瀏覽量與review分割開,并取首個元素,即只取數字
'image':image.get('src'), #獲取圖片的src屬性,得到圖片的地址
'star': star_logo
}
print(data)
總結
1.在導入BeautifulSoup的時候,遇到的點麻煩,多虧老師的幫忙解決了;
2.通過這個項目,發(fā)現自己的基礎還不扎實,需要重新學習基礎;
3.只想著把項目完成,卻沒想做得更好,這個要改進,看完優(yōu)秀作業(yè)之后,修改了自己的代碼,希望自己的代碼可讀性更高,代碼運行結果更美觀;