Xpath实战一:解析爬取糗事百科段子

£神魔★判官ぃ 2022-06-05 01:08 292阅读 0赞
  1. #coding=utf-8
  2. import requests
  3. from lxml import etree
  4. def getHtml(url):
  5. page = requests.get(url)
  6. html = page.text
  7. return html
  8. def getImg(html):
  9. texts = []
  10. html = etree.HTML(html)
  11. authors = html.xpath('//h2/text()') #所有作者信息都在h2标签的文本里
  12. contents = html.xpath('//div[@class = "content"]//span[1]') #span[1] 只选择第一个span标签的内容,有些第二个span标签内容是“查看全文”
  13. for content in contents:
  14. texts.append(content.xpath('string(.)')) #过滤多个类似<br>标签,只选择文本
  15. votes = html.xpath('//*[@class = "stats-vote"]//i[@class = "number"]/text()') #好笑数
  16. comments = html.xpath('//*[@class = "qiushi_comments"]//*[@class = "number"]/text()') #回复数
  17. for x in zip(authors,texts,votes,comments):
  18. Enter = input()
  19. if Enter == 'Q' or Enter == 'q':
  20. return -1
  21. print("\n".join((s.strip() for s in x)))
  22. return 1
  23. if __name__=='__main__':
  24. url = "https://www.qiushibaike.com/hot/"
  25. html,i = getHtml(url),2
  26. print("开始读取数据,请按回车键...按Q键退出\n")
  27. while (getImg(html) == 1):
  28. print("\n第{}页\n".format(i))
  29. url = ("https://www.qiushibaike.com/hot/page/%s/" % str(i))
  30. html,i = getHtml(url),i+1

发表评论

表情:
评论列表 (有 0 条评论,292人围观)

还没有评论,来说两句吧...

相关阅读