Python爬虫实战(六):爬取糗事百科段子
【摘要】 直接上代码:
#coding=utf-8import requestsfrom bs4 import Tagfrom bs4 import BeautifulSoup def getHtml(url): page = requests.get(url) html =...
直接上代码:
-
#coding=utf-8
-
import requests
-
from bs4 import Tag
-
from bs4 import BeautifulSoup
-
-
def getHtml(url):
-
page = requests.get(url)
-
html = page.text
-
return html
-
-
def getImg(html):
-
get_text = Tag.get_text
-
soup = BeautifulSoup(html, 'html.parser')
-
-
info = soup.find_all('h2')
-
user = (x.get_text() for x in info) #使用生成器代替list(map(get_text,info))
-
-
info = soup.find_all('span',class_="stats-vote")
-
vote = (x.get_text() for x in info) #使用生成器代替list(map(get_text,info))
-
-
info = soup.find_all('div',class_="content")
-
text = (x.get_text() for x in info) #使用生成器代替list(map(get_text,info))
-
-
for x in zip(user,text,vote): #zip函数同时遍历
-
Enter = input()
-
if Enter == 'Q' or Enter == 'q':
-
return -1
-
print("\n".join((s.strip() for s in x))) #使用生成器代替list(map(str.strip,x))
-
return 1
-
-
if __name__=='__main__':
-
url = "https://www.qiushibaike.com/hot/"
-
html,i = getHtml(url),2
-
print("开始读取数据,请按回车键...按Q键退出\n")
-
while (getImg(html) == 1):
-
print("\n第{}页\n".format(i))
-
url = ("https://www.qiushibaike.com/hot/page/%s/" % str(i))
-
html,i = getHtml(url),i+1
-
-
缺点:无法过滤掉既有文本,又有图片的内容。
待以后优化更新。
文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq523176585/article/details/77849989
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)