当前位置: 首页 > >

python爬虫-----学*bs,爬取丁香园特定帖子的所有回复内容

发布时间:

beautifsoup----爬虫数据挖掘又一大利器

? 安装
conda install beautifulsoup4 或者 pip install beautifulsoup4(这个4代表着bs的版本)
这里我用了conda安装:


? beautiful soup:
BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库.
官方文档:Beautifulsoup官方文档(里面讲的很详细)
?案例:


工具:urllib bs

思考:
1. 用urllib.request.Request请求网页,使用headers设置用户代理或者使用proxy代理服务器隐 藏身份,因为直接请求,返回403。
2. 通过查看源代码发现,用户名在auth类下的a标签里,而用户回复内容在postbody类里
4. 炖一锅汤,使用css选择器 select方法下的get_text()方法找到我们想要的数据
5. for循环并按想要的格式输出数据

代码:

输出结果:



疑问:如何获取所有跟贴战友的name和content?

但是通过结果我们发现,最终结果只有四个战友的名字和其回复内容,但是我们发现登录丁香园账号后这个帖子有很多跟贴。
解决办法:
使用cookie,模拟用户登录

输出结果:


**特别提醒:**这里range函数里如果是len(name),结果会多一行“没找到”
原因就是我们用cookie模拟登录,那么最后一个战友的name是自己。



总结:

bs是出了xml bs4等外的非常重要的一种数据提取库
他们的优缺点


正则: 很快,不好用,不许安装beautifulsoup:慢,使用简单,安装简单lxml: 比较快,使用简单,安装一般

bs的四大对象:


TagNavigableStringBeautifulSoupComment

遍历文档树的方法


find_all和find

css选择器(select)



友情链接: