大数据挖掘DT机器学习 公众号: datayx 新浪微博绝对是一个巨大的,实时的语料库!对微博数据爬取和分析,有重大的意义。 再比如,最近火热的明星鹿晗,可以抓取鹿晗的粉丝信息,分析这些粉丝处于什么年龄段,有什么标签,爱好,性别分布等等。这种对人群的分析,还可以同理应用到商业品牌上,用用户市场调研。 当然例子还有很多,那么,首先,要有微博数据! 所以,就产生了众多的微博爬虫项目。后来,新浪微博也开放了微博的API接口,但是官方的东西,限制还是很多的。 http://open.weibo.com/wiki/%E5%BE%AE%E5%8D%9AAPI 准备工作User-Agent池爬微博,这种大项目,必要充分的伪装是必须的,所以需要一个User-Agent池,每次,随机选择一个User-Agent。 我整理的在这里:User-Agent池 本文源码地址: 关注微信公众号datayx 然后回复“微博”即可获取。 充足的微博账号微博爬虫,必须登录以后,才能抓取。而一直使用一个账号,是很容易被封号的! 所以,需要多准备几个账号,每次随机选择一个账号登录,进行抓取。(实际是随机选择一个cookie)。 至于买微博账号的地方,某宝就有: 充足的IP代理如果你想很快的进行抓取,延迟为0的话,IP很快就会被封,返回403 Forbidden。这时候就需要换代理,所以需要有一个IP代理池,这个具体可以参见我的另一个项目:构建爬虫代理池 http://blog./2017/10/19/spider/%E6%9E%84%E5%BB%BA%E7%88%AC%E8%99%AB%E4%BB%A3%E7%90%86%E6%B1%A0/ 当然,经测试,每次访问延迟为0.5s,并发量为32,这个参数是不会被封的! 一个服务器其实,如果IP代理,是免费抓取来的,通常质量并不好,通过代理访问延迟会很大!所以,不如不用代理,加一个0.5秒的延迟,慢慢爬。 这时候,就需要一个勤劳的爬虫,24小时不间断的爬数据! 所以当然是需要部署在服务器上! 爬虫策略登录微博登录一直是一个很复杂的问题,不过,我们可以通过selenium来简化这个问题。
获取cookie以后,可以保存到数据库中。以后每次request请求,随机从数据库中选一个cookie加上,就免登录了。 抓取方案
|
|
来自: LibraryPKU > 《Python》