在写爬虫的过程中,看过很多人的代码。有一个人完成以后在readme文档中只写了一句“very disappointed”,还有一个人用selenium爬了新浪微博的图片以后写“好像也不是很难”。还有一位大神,把国内所有主流网站的登录破解了一遍,他的项目名称叫“f*ck log-in“。我暗自揣测这群电脑屏幕后面的爬客,网站明明提供了登录和搜索的功能,但是他们偏偏是一群开门不喜欢用钥匙的家伙。
说回自己的活儿,新浪微博反爬能力比较高,一个账号爬200条记录的时候,就会出现服务器拒绝访问的情况,所幸几分钟后账户就会恢复正常。
为了使每个账户请求服务器的次数少一些,需要由多个账户完成爬取。 首先建立cookie池存放多个账户和cookie,并由api接口调用这些cookie。
2. 然后在scrapy框架,把关键词,页码和headers等信息传给新浪微博,将返回的结果解析并且存储。我用了两个账号,爬取了524条记录,用时大概4分钟。
3. 导出数据,jieba中文分词,然后生成词云。过程3秒钟。这一步一定要指定中文字体,否则会输出乱码。
不知道为什么要命名为爬虫,听起来很慢。但是事实上,爬虫是一个很高效的工具。