用Python学爬虫,第一周第二课:筛选出评分大于3的文章

第二课学习需要数据结构和循环的知识,这部分我还没看到,就一边跟着老师敲代码一边学习了。
提前总结一点,不敲不知道,一敲吓一跳。

供统计的网页如下:
用Python学爬虫,第一周第二课:筛选出评分大于3的文章_第1张图片
统计评分大于3的文章
我的代码:
from bs4 import BeautifulSoup
info=[]
with open('/home/steven/Downloads/Plan-for-combating-master/week1/1_2/1_2code_of_video/web/new_index.html','r') as wb_data:
    Soup = BeautifulSoup(wb_data,'lxml')
    images = Soup.select('body > div.main-content > ul > li > img')
    titles = Soup.select('body > div.main-content > ul > li > div.article-info > h3 > a')
    rates = Soup.select('body > div.main-content > ul > li > div.rate > span')
    cates = Soup.select('body > div.main-content > ul > li > div.article-info > p.meta-info')
    descs = Soup.select('body > div.main-content > ul > li > div.article-info > p.description')

for title,rate,desc,cate,image in zip(titles,rates,descs,cates,images):
    data = {
        'title':title.get_text(),
        'rate':rate.get_text(),
        'desc': desc.get_text(),
        'cate': list(cate.stripped_strings),
        'image':image.get('src')
    }

    info.append(data)

for i in info:
    if float(i['rate'])>3:
        print(i['title'],i['cate'])
代码运行结果:
筛选结果
总结:
  • 在检查模式下从网页中拷贝网页元素的路径时,可能在其中产生一些空格,在pycharm中编译时会导致失败,必须去除掉;
  • 注意缩进的使用:想要打印 全部信息时,不需要缩进;而要打印for循环中的所有信息时,不缩进只会打印出第一条数据。只有缩进后才会打印出全部的数据;此问题至少困扰我半个小时以上。

你可能感兴趣的:(用Python学爬虫,第一周第二课:筛选出评分大于3的文章)