一、总结,本次作业,真的收获很多,
1、windows 平台,暴露了很多问题,首先是路径问题,而后安装几个库,也是,都解决了
2、大小写问题,soup 我的是小写。老是报错
3、复制出来,粘贴后出现问题,我在代码中标出了。
二、成果展现
三、代码,注意,直接从pycharm 复制代码,粘贴是格式不对的,我只有粘贴到记事本,而后再粘贴到这里才可以,
from bs4 import BeautifulSoup
path = './index.html' # 路径自己修改
with open(path, 'r') as ww:
soup = BeautifulSoup(ww, 'lxml') #z注意大小写 ,
#titles = Soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a') # div 两边的空格都不能少,格式要求较严格
# titles = Soup.select('body > div > div > div.col - md - 9 > div > div > div > div.caption > h4 > a')
titles = soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a')
# body > div > div > div.col - md - 9 > div > div > div > div.caption > h4 > a 大家要小心,这里复制出来-号周围有空格,这是不行的,一定要去掉空格,我是windows系统
#body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a
#body > div:nth-child(2) > div > div.col-md-9 > div:nth-child(2) > div:nth-child(3) > 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')
prices = soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4.pull-right')
stars = soup.select('body > div > div > div.col-md-9 > div > div > div > div.ratings > p:nth-of-type(2)')
for title, image, review, price, star in zip(titles, images, reviews, prices, stars):
data = {
'title' : title.get_text(),
'image' : image.get('src'),
'review' : review.get_text(),
'price' : price.get_text(),
'star' : len(star.find_all("span", class_='glyphicon glyphicon-star'))
}
print(data)