给新手的Python微博爬虫

为什么说是给新手的呢?

因为项目很小,算上空行才200来行代码,甚至有些“简陋”。相比于动不动写成几个大模块的教程,新手们能更快理解我在干什么,节省学习时间。当然,该有的模拟登陆,数据解析也都不少。

Tip: 结合项目代码看比较好

一些说明

  1. 爬的是手机端网页版的微博(听说这个爬起来简单,我就爬了)。
  2. 模拟登陆采用POST表单实现,不是复制粘贴 cookie(复制粘贴没什么技术含量,都不用动脑子,想用的可以自己试一试)。
  3. 最后的数据采用pickle序列化后存储在本地(想用数据库的自己改一下就好了,不会的可以去看看廖雪峰老师的教程)。
  4. 微博内容只取文本内容。(因为我懒)
  5. 为了不给别人添麻烦,亦本学习交流之意,对爬取的速度做了限制。

代码结构

  1. 大体上分为两部分,一个WBCrawler类,一个show_random_data. 前者爬取并保存,后者随机检查一下。
  2. 关于登录时所提交的表单涉及到的字段,我都在代码里面写了。看了它的javascript文件,有的字段在用帐号密码登录时就是空值。
  3. HTTP 请求用 requests.seesion 发送,并且在项目退出时会保存 session,以便再次使用。这里当然也是用的pickle序列化保存。
  4. 为了节约,长微博和短微博会在不同的地方进行解析,所以大家会看到有的地方写了两种解析方式。
  5. 其中有一个函数使用了 yield语句,是为了降低耦合。关于 yield,可以看廖雪峰老师的讲解。关于什么是耦合,我也不太清楚,我这里是为了不让函数之间调用得太紧凑,适当地独立出来。
  6. 类的初始化函数中的maximum参数指爬取几页,默认爬两页。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容