|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
众所周知,鱼C论坛没有user-agent的检测,所以很适合新手开刀......
注:我没有任何邪恶的想法(比如以前的大规模攻击)
[1]
- from requests import *
- import bs4
- import sys
- try:
- resp = get(input('请输入URL:'))
- #如果出错(ValueError,404......)
- except:
- print(f'Un oh......')
- sys.exit(0)#退出程序
- #正常
- #(1)数据分析
- s = bs4.BeautifulSoup(resp.text, 'html.parser')
- name = s.find('span', id='thread_subject').text#帖子名称
- author = s.find('div', class_='authi').text#作者id[index]
- #查看与回复
- a = s.find('div', class_ = 'hm ptn')
- look_num = str(bs4.BeautifulSoup(a.text, 'html.parser')).split('|')[0]
- say_num = str(bs4.BeautifulSoup(a.text, 'html.parser')).split('|')[1]
- #个人信息
- d1 = s.find('dl', class_="cl")
- dts = str(bs4.BeautifulSoup(d1.text, 'html.parser'))
- dts = dts.split('\n')
- #UID
- uid = dts[1][:3] + ' : ' + dts[1][3:]
- #积分
- jf = dts[-2][:2] + ' : ' + dts[-2][2:]
- #(3)打印数据
- print('帖子名称:', name)
- print('作者:', author)
- print(look_num)
- print(say_num)
- print('[Ta的个人信息]:')
- print(uid)
- 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(即我们可以在浏览器看到的文字)。而我们需要的数据,大部分也都是浏览器可以看到的。而如果遇到嵌套在内层的数据,如:
- <div class="z">
- <a href="./" class="nvhm" title="首页">鱼C论坛</a>
- </div>
复制代码
我们需要“鱼C论坛”四个字,只需按刚才的技巧就可以提取出来了。
|
|