鱼C论坛

 找回密码
 立即注册
查看: 1398|回复: 1

[作品展示] 爬虫:几个拿我们老窝开刀的爬虫(2)

[复制链接]
发表于 2022-3-23 18:15:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        众所周知,鱼C论坛没有user-agent的检测,所以很适合新手开刀......
        注:我没有任何邪恶的想法(比如以前的大规模攻击)
        [1]

  1. from requests import *
  2. import bs4
  3. import sys

  4. try:
  5.     resp = get(input('请输入URL:'))
  6. #如果出错(ValueError,404......)
  7. except:
  8.     print(f'Un oh......')
  9.     sys.exit(0)#退出程序

  10. #正常
  11. #(1)数据分析
  12. s = bs4.BeautifulSoup(resp.text, 'html.parser')

  13. name = s.find('span', id='thread_subject').text#帖子名称
  14. author = s.find('div', class_='authi').text#作者id[index]
  15. #查看与回复
  16. a = s.find('div', class_ = 'hm ptn')
  17. look_num = str(bs4.BeautifulSoup(a.text, 'html.parser')).split('|')[0]
  18. say_num = str(bs4.BeautifulSoup(a.text, 'html.parser')).split('|')[1]
  19. #个人信息
  20. d1 = s.find('dl', class_="cl")
  21. dts = str(bs4.BeautifulSoup(d1.text, 'html.parser'))
  22. dts = dts.split('\n')
  23. #UID
  24. uid = dts[1][:3] + ' : ' + dts[1][3:]
  25. #积分
  26. jf = dts[-2][:2] + ' : ' + dts[-2][2:]

  27. #(3)打印数据

  28. print('帖子名称:', name)
  29. print('作者:', author)
  30. print(look_num)
  31. print(say_num)
  32. print('[Ta的个人信息]:')
  33. print(uid)
  34. print(jf)
复制代码



        根据注释,想必大家已经猜到这是用来爬取我们老窝的帖子与作者的信息的。其实也不难,学过小甲鱼《极客Python之效率革命【爬虫篇】》的鱼油,应该都能看懂。requests用于爬取源代码,一个get()就行。bs4用于分析数据,只要往源代码里钻就行。其中我有个bs4的小技巧:
        请注意看“dts = str(bs4.BeautifulSoup(d1.text, 'html.parser'))”这行,bs4.BeautifulSoup()用于创建BeautifulSoup对象,而我又用str()将它创建时返回的html给变成了str,这是什么操作???
        重点在‘.text’这里,
        BeautifulSoup对象的text属性,是去掉了标签的html(即我们可以在浏览器看到的文字)。而我们需要的数据,大部分也都是浏览器可以看到的。而如果遇到嵌套在内层的数据,如:

  1. <div class="z">

  2. <a href="./" class="nvhm" title="首页">鱼C论坛</a>

  3. </div>
复制代码



        我们需要“鱼C论坛”四个字,只需按刚才的技巧就可以提取出来了。


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-23 19:36:13 | 显示全部楼层
厉害厉害  收藏一波
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-29 13:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表