翼度科技»论坛 编程开发 python 查看内容

爬取诗词网站中的文章

15

主题

15

帖子

45

积分

新手上路

Rank: 1

积分
45
实战准备:要爬取的url:https://www.shicimingju.com/book/sanguoyanyi.html
实战要求:爬取诗词名句网站中的三国演义文章,将每章的标题和内容写入自己的项目文件(sanguo.txt)
(本次爬取使用bs4)
  1. 1 import requests
  2. 2 # 实例化BeautifulSoup对象
  3. 3 from bs4 import BeautifulSoup
  4. 4 if __name__ == "__main__":
  5. 5     #设置User-Agent将爬虫伪装成用户通过浏览器访问
  6. 6     header = {
  7. 7         'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.55'
  8. 8     }
  9. 9     #要访问的网页url地址
  10. 10     url = 'https://www.shicimingju.com/book/sanguoyanyi.html'
  11. 11     #发起请求
  12. 12     respond = requests.get(url=url,headers=header)
  13. 13     #通过实例化获取网页源码
  14. 14     soup1 = BeautifulSoup(respond.content,'lxml')
  15. 15     #select返回列表,找到连接标签
  16. 16     title = soup1.select('.book-mulu a')
  17. 17     #打开sanguo.txt文件,设置字节码格式避免乱码
  18. 18     fp = open('./sanguo.txt','w',encoding='utf-8')
  19. 19     #循环title列表里的链接
  20. 20     for i in title:
  21. 21         #通过.string获取a链接下的直系文本作为标题
  22. 22         title = i.string
  23. 23         #补全a连接,获取特定的href属性
  24. 24         data_url = "https://www.shicimingju.com"+i['href']
  25. 25         #对a连接的url进行请求,进一步获取链接里的文章
  26. 26         soup2 = BeautifulSoup(requests.get(url=data_url,headers=header).content,'lxml')
  27. 27         #找到文章所在的标签
  28. 28         content = soup2.find('div',class_='chapter_content')
  29. 29         #将文章标题及其文章的内容获取到写入刚刚打开的文件
  30. 30         fp.write(title+":"+content.text+"\n")
  31. 31         print(title+"爬取成功")
  32. 32     print("Over")
复制代码
*bas4知识梳理在博客中Python知识梳理中

来源:https://www.cnblogs.com/PinkPig-Sunflow/p/17778532.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具