ToB企服应用市场:ToB评测及商务社交产业平台

标题: Python爬虫小训练 [打印本页]

作者: 络腮胡菲菲    时间: 2024-6-21 15:00
标题: Python爬虫小训练
爬虫的本质

爬虫的本质就是通过程序模仿正凡人向网站发送哀求获取信息。
关于爬虫的一些闲聊

按照我们的常识来说,我们不可能在1秒钟访问这个网站100次,哀求100次数据,以是过多的哀求很有可能会被网站认为你在使用脚本进行爬虫,可能会封你IP,大概说当你爬虫不修改UA头时,python会默认告诉网站自己是一个爬虫脚本,相当于明牌告诉别人自己是来爬你网站。而且要是网站有WAF,也可能设置有策略,不让你爬,固然要是你手法够硬,也是可以绕的。固然作者水平有限,而且各位在爬虫的时间要清楚哪些东西可以爬,哪些东西不能爬,不要触及了法律的红线。年纪轻轻就吃上了国家饭.QAQ
爬取某小说网站(URL已码)

  1. import requests
  2. import os
  3. import parsel
  4. end=input("你想爬取多少章?(阿拉伯数字输入,大于2):")
  5. end= int(end)
  6. print("正在爬取请稍等...")
  7. #爬取第一页的内容
  8. print("==============正在爬取第1章==============")
  9. url = f'xxxxxxx'
  10. response = requests.get(url=url)
  11. response.encoding = response.apparent_encoding
  12. html = response.text
  13. # 解析html
  14. selector = parsel.Selector(html)
  15. # 获取文章标题
  16. title = selector.css('.content h1::text').get()
  17. #print(title)
  18. # 获取小标题内容
  19. content_1 = selector.css('#chaptercontent::text').get()
  20. #print(content_1)
  21. # passage = ''.join(selector.xpath('//div[@id="chaptercontent"]//text()').getall()).strip()
  22. passage = ''.join(selector.css('#chaptercontent').xpath('./text()').getall()[:-4])
  23. passage = passage.replace('  ', '\n')
  24. #print(passage)
  25. filename = 'xxxxxx\\'
  26. if not os.path.exists(filename):
  27.     os.mkdir(filename)
  28. with open(filename +title+ '.txt', mode='wb') as f:
  29.     f.write(passage.encode('utf-8'))
  30. #后续内容
  31. for page in range(2,end+1):
  32.     print(f"==============正在爬取第{page}章==============")
  33.     url = f'xxxxxxxxxxxxxxxxxxx'
  34.     response=requests.get(url=url)
  35.     response.encoding = response.apparent_encoding
  36.     html=response.text
  37.     # 解析html
  38.     selector=parsel.Selector(html)
  39.     # 获取文章标题
  40.     title=selector.css('.content h1::text').get()
  41.     #print(title)
  42.     # 获取小标题内容
  43.     #content_1 = selector.css('#chaptercontent::text').get()
  44.     #print(content_1)
  45.     #passage = ''.join(selector.xpath('//div[@id="chaptercontent"]//text()').getall()).strip()
  46.     passage = ''.join(selector.css('#chaptercontent').xpath('./text()').getall()[:-4])
  47.     passage=passage.replace('  ','\n')
  48.     #print(passage)
  49.     with open(filename + title+ '.txt', mode='wb') as f:
  50.         f.write(passage.encode('utf-8'))
  51. print("爬取完成,已保存在同目录下")
复制代码
代码思绪

总之,我以为无论是爬那个网站,思绪上都大体差不多。
ps:注意编码格式,许多时间打印不出东西都是由于格式的问题。本人照旧学生,也是初学者,代码写的比力草率,旨在记载学习。如有错误接待指出改正。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4