豆瓣算是一个对爬虫比较友好的网站了,没有反爬虫机制,结构也简单,比较容易爬。
试着爬了一个陌生博主的豆瓣日记,并且下载到了本地。
实现如下:
1.引用模块与库
首先召唤需要用到的模块和库,其中requests、BeautifulSoup4需要另外下载
2.设置代理、获取响应
通过代码与对方服务器交换数据时,对方得到你的身份是‘python’,一些网站会拒绝这种访问,所以我们要设置代理,假装自己是在通过mac系统的浏览器访问。
访问对方网站是一个请求对方服务器资源的过程,这一过程在这里通过requests.get()实现。
3.获取html文档
对方服务器响应请求后,会发送一个html文档。正常情况下这个文档会被发出请求的服务器接受,然后解析成一般的网页。
现在,python接受到的是一个文本组成的文档。
4.筛选出每篇日志的链接
在Chrome浏览器豆瓣日志页面按下‘F12’,或者点击右键‘检查’,会出现当前页的源代码,源代码窗口左上角有个箭头和框的图标,可以通过它找到网页中元素对应的具体标签。
在这个页面,日志标题链接被放在‘台词本’中。链接地址为‘href’的值。
利用find_all找到所有href属性的值,而其中以“title”结尾的则是我们想要的所有日志的链接,引入正则表达式,筛选出以“title”结尾的链接。
5.获取文章正文
逐个打开获取到的日志链接,在日志内容页获得正文。
6.过滤内容
7.保存爬取到的内容
完整代码:
不足之处:
1.变量、文件夹命名太随意。
2.如果日志列表页面需要翻页的话,这段代码只能抓取到第一页的日志。
3.好像多转了一次格式。