Python爬虫实战(六):爬取糗事百科段子

举报
悦来客栈的老板 发表于 2020/12/29 01:04:27 2020/12/29
【摘要】 直接上代码: #coding=utf-8import requestsfrom bs4 import Tagfrom bs4 import BeautifulSoup def getHtml(url):      page = requests.get(url)      html =...

直接上代码:



  
  1. #coding=utf-8
  2. import requests
  3. from bs4 import Tag
  4. from bs4 import BeautifulSoup
  5. def getHtml(url):  
  6.     page = requests.get(url)  
  7.     html = page.text  
  8.     return html
  9. def getImg(html):
  10.     get_text = Tag.get_text
  11.     soup = BeautifulSoup(html, 'html.parser')
  12.     
  13.     info = soup.find_all('h2')
  14.     user = (x.get_text() for x in info)   #使用生成器代替list(map(get_text,info))
  15.                     
  16.     info = soup.find_all('span',class_="stats-vote")
  17.     vote = (x.get_text() for x in info)   #使用生成器代替list(map(get_text,info))  
  18.     info = soup.find_all('div',class_="content")
  19.     text = (x.get_text() for x in info)   #使用生成器代替list(map(get_text,info))  
  20.     
  21.     for x in zip(user,text,vote):         #zip函数同时遍历
  22.         Enter = input()
  23.         if Enter == 'Q' or Enter == 'q':
  24.             return -1
  25.         print("\n".join((s.strip() for s in x))) #使用生成器代替list(map(str.strip,x))
  26.     return 1
  27.  
  28. if __name__=='__main__':
  29.     url = "https://www.qiushibaike.com/hot/"
  30.     html,i = getHtml(url),2
  31.     print("开始读取数据,请按回车键...按Q键退出\n")
  32.     while (getImg(html) == 1):
  33.         print("\n第{}页\n".format(i))
  34.         url = ("https://www.qiushibaike.com/hot/page/%s/" % str(i))
  35.         html,i = getHtml(url),i+1
  36.   

缺点:无法过滤掉既有文本,又有图片的内容。


待以后优化更新。

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/77849989

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。