首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

套路的爬虫

最近研究的是爬虫程序。以往我浏览网站的时候,有的时候需要先登录,有的需要先看段广告,有的需要先付费,还要忍受加载不必要的内容和翻页等待的痛苦。现在有了爬虫程序,很多问题都可以迎刃而解。

爬虫的思路说到底就是请求服务器,在服务器的响应中找到想要的信息。首先要做到的就是不要被服务器拒绝,做法就是靠伪装,伪装自己的账号(你是谁),伪装自己的IP(你从哪里来),伪装自己是浏览器(自己是美女?)。爬取的过程中为了提高效率,可以多线程,也可以叫上自己的小伙伴(另一台计算机)一起去找服务器套词,这是所谓的分布式爬虫,爬虫的最高境界。之后就是解析服务器源文件,找到自己想要的信息,进行处理或者存储。

在爬虫的实例中,我也知道了两件相当惊奇的事。一是为了克服网站出现的日益复杂的验证码,有专门公司雇佣人在后台帮助过验证码。二是新浪微博的账号是可以售卖的。然而这两件事和我并没有关系^_^

1. 说回自己的活儿,新浪微博反爬能力比较高,一个账号爬200条记录的时候,就会出现服务器拒绝访问的情况,几分钟后账户会恢复正常。为了使每个账户请求服务器的次数少一些,就需要由多个账户完成爬取。 首先建立cookie池存放多个账户和cookie,并由api接口调用这些cookie。

2. 然后在scrapy框架,把关键词,页码和headers信息传给新浪微博,cookie通过中间件传达,返回的源代码解析并在管道中处理,放在items里面存储。到这里爬取就成功了。我用了两个账号,爬取了524条记录,用时大概4分钟。

3. 用jieba中文分词,然后wordcloud生成词云。过程3秒钟。我的教训一定要指定中文字体,否则会输出乱码。

不知道为什么要命名为爬虫,听起来很慢。事实上,爬虫是很高效的。如果有批量的对数据的需要,可以尽量用爬虫实现。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180202G01KLY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券