小白的爬虫--微博版
小白的爬虫–微博版(一)
本贴不太涉及较多技术知识,可能仅能对刚入门爬虫的小白且有迫切爬虫任务需求的,有一定的帮助,(本人也只是小白一名,如果有技术大佬愿意指点,感激不尽),
[附带源码] [https://blog.****.net/qq_44671752/article/details/104855161]
项目需求:
对于微博中”北京12345“账号进行爬虫,主要是寻找@北京12345平台的用户都出现了什么问题
使用环境:
python 3.7+anaconda
OS X
项目方案:
- 本地进行人工爬取
- 服务器定时进行爬取
项目思路:
本地版:
首先对于北京12345平台的爬取,小白其实对于post表单提交(模拟登录)不能很好进行处理,我看了很多GitHub的项目,因为微博还涉及验证码以及IP限制,所以需要处理的太复杂,不适合本小白。那么我们就简单一下:
其实不用登录,我们也能看到一定量关于搜索内容的结果
只是内容并不多,但是还是勉强能用。秉承着宁愿多动一下手,也要完成任务的原则。我们先可以爬取该页内容这里会使用到urllib库,Beautifulsoup库(假定大家还是有些些了解爬虫的,我就不介绍了)
爬取内容后,我们会发现,所得到的HTML格式文本简直就是天杀的!这让本小白怎么分析?
那么我们就去找代码,最后在云栖社区,找到了一位作者的代码,其大概思路,是对于HTML转成string模式,然后逐一进行处理。最后只保留镶嵌在(没学前端,可能用词不当)<p><\p>里面的文本内容
好了,处理好一个页面的代码后,我们得到了一点点内容,还是秉承最简单原则,我这里只用txt保存文本信息。
然后对于文本信息稍微进行优化,可以得到下面更加易分析的内容:
那么我们这只能爬取一个页面,由于微博未登陆就会重定向的限制,我们不能方便的用循环,直接爬取n多页内容。那么我们就换个思路吧
我们可以在微博中使用”关键词 + 北京12345“的方法,来人工自动扩展URL,然后通过用txt文本进行记录,在程序运行时,只需要读取txt内已经存储好的网址,就可以爬取指定的页面了(hhh,算是小白的无奈之举吧),这个时候,我们的工作就完成了。
然后你就能搓手手等待,第一次获得较少量所需内容了
最后,假如你需要的内容更多,你可以采取不定时,人工启动python进行爬取。因为网站虽然没变,但是你搜索的内容总还是会随时间变化发生改变的了!然后本地版的就完成任务了!