动态ip

>

代理ip软件

>

换ip软件

>

HTTP代理

>
Socks5代理
黑核动态ip代理
您的位置: 首页 > 新闻资讯 > 正文

怎么利用动态ip抓取豆瓣电影数据

发布时间:2019-03-29 10:55:32 来源:黑核混拨ip代理

分享到

  学爬虫有一段时间了,作为一个悬疑片爱好者总是无限片荒,泛滥的Top250爬取以及填补不了我饥渴的内心。于是果然地决定:自己动手,爬完豆瓣,丰衣足食。

  (一)反爬虫策略分析:

  之前其实有搜到过笑虎大大的文章:单机30分钟抓取豆瓣电影7万+数据:论爬虫策略的重要性(附全部数据下载地址),但是发现单ip+随机cookie的方法已经失效了。经过我不断摸索,总结规律如下。

  (1)单个ip不带cookie访问多次,ip不一会被封

  (2)首次访问返回cookie值,带同一个cookie值连续访问,几分钟被封;带不同cookie值访问,大约十分钟之后,IP还是被封了。

  (3)单个ip低速访问(10s以上),不会被封

  (二) 爬虫策略分析:

  简单来说,有这么几个防止反爬方法:

  带随机User Agent:最简单,新手也都会

  设置爬取间隔时间: 简单,但是大大降低效率

  带可用cookie:可难可容易找规律,会需要带上一些认证或者解密的数值去计算

  使用代理:简单粗暴有效,但是维护代理是个问题

  由于单个ip怎么样都会被封,所以我投向了代理的怀抱,常见的有代理IP如黑核混拨ip代理。爬虫策略大致如下:

  三个随机:随机UA,随机代理,随机cookie

  网上免费代理一抓一大把,质量低下,不稳定,一开始自己写了个proxypool,来过滤各大网站可能的ip再去爬,好不容易抓到一些能用,过了一会,这些ip又失效,或者又被封。最后遂决定还是得搞个动态的ip池。

  对于使用免费代理:

  可以参考git上的一个开源项目:jhao104/proxy。用了几个类似的,感觉这个是最好的,它主要用flask做了一个api来实时刷新可用ip,不仅可以抓取各大主流免费代理ip,还能定时检验ip的可用性。但是这个项目还是有一个问题,比如当我设定抓取的间隔为10秒之后,执行任务的时间可能大于10s,会报一个warning引发整个程序暂停。

  对于使用付费代理:

  我个人不想再用免费低质的ip,遂买了那种包天的套餐,后来又丑陋地膜改了下这个jhao104/proxy的开源项目,只留下主要api+抓取proxy+数据库的功能,每5秒一刷10个ip,爽歪歪—— 用付费代理的朋友可以参考下我的方法——proxy丰富的话,爬取数据时候可以不需要sleep的,另外用黑核混拨ip代理也可以达到相同的效果。

  (三)代码实现:

  爬取过程:

  首先找到豆瓣的索引页面,通过查看源代码发现,页面内容是动态显示的。通过谷歌浏览器自带的F12->Network->XHR,找到json的入口。

  动态页面有两种解析方式,一种直接用自带的json库,另一种selenium库+Phantom JS来模拟真实浏览器。点开页面,幸好——呼呼,没用加密,直接用json库就可以。

  json网址的格式大概是这样的:

  xx/j/new_search_subjects?sort=T&range=0,10&tags=&start=20&genres=%E5%96%9C%E5%89%A7

  通过观察,发现start=用来控制页数,每个页面有20部电影,20一整数一变。每个页面有相关电影名字,链接等。

  打开单个电影页面,比如:xx/subjec。我所爬的信息如图中所示。

  某部最近看了喜欢的电影

  OK,大致思路来了。首先我们获取每个json页面的film信息,当json页面没有返回内容时候,解析停止,再去逐条分析单个电影静态页面的信息,打包入库。

  2. 几个关键点:

  解析方式:选了xpath,效率比某soup高很多,正则解析效率最高,但是开发效率较低(其实是我背不出

  多线程:爬虫算是IO型任务,使用多线程。用的是multiprocessing.dummy,似乎鲜为人知,比threading感觉使用上简单一点,不是很明白两者之间的区别?之后会尝试下和threading比比效率。

  MongoDB: Proxy和电影的信息都存在Mongodb里,其实用redis存proxy更好,但是我不高兴开那么多数据库了,后来发现mongodb似乎各种不稳定……有个topology was detroyed的错误时常发生导致数据库失联,有老铁知道这是为啥嘛?

  爬proxy时间间隔:这个其实还挺重要,因为代理有效时效有限(我买的是保证五分钟),最好的效果应该是代理池里数量稍大于实际用量,也就是假设proxy可用率为50%,5秒用坏一个proxy,五分钟proxy失效,那么大概设定平均略小于2.5秒左右刷新1个proxy比较好。如果proxy在数据库里冗余,大量失效proxy会导致爬虫效率降低。

  (四)成果

  爬取结果:

  四核开了四线程,爬虫效率大概是十分钟400部左右,所以真的不明白为什么

  @笑虎

  大大可以半小时爬70000部,难道他的mac是100核的?

  总之,大概加起来爬了二十多个小时终于爬完了……成果如下。

  剧情片: 9,843部

  喜剧片: 8,912部

  爱情片: 7,714部

  动作片: 6,065部

  惊悚片: 5,776部

  犯罪片: 4,610部

  恐怖片: 4,113部

  悬疑片: 3,895部

  冒险片: 3,060部

  奇幻片: 2,842部

  科幻片: 2,665部

  战争片: 1,822部

  传记片: 1,531部

  历史片: 1,464部

  音乐片: 1,305部

  同性片: 1,267部

  歌舞片: 924部

  情色片: 517部

  西部片: 407部

  武侠片: 377部

  灾难片: 159部

  2. 查询使用

  数据在Mongodb里,大概是长这样的:

  某个document

  如果想找个电影看看,如:

  评分高于7.5分

  观看人数在1000——20000人之间

  科幻片

  可以写类似的query:

  db.collection.find({'$and': [{'star': {'$gte': 7.5}}, {'pp': {'$gte': 1000, '$lte': 20000}},{'type':re.compile('科幻')}]})

  经过整合,清洗之后,总共有41960 部电影,以json格式从Mongodb里导出

相关资讯

怎么利用动态ip抓取豆瓣电影数据

学爬虫有一段时间了,作为一个悬疑片爱好者总是无限片荒,泛滥的Top250爬取以及填补不了我饥渴的内心。于是果然地决定:自己动手,爬完豆瓣,丰衣足食。(一)反爬虫

来源:黑核混拨ip代理

2019-03-29 10:55:32

动态ip地址有什么优点和缺点

动态IP地址(DynamicIP)指的是在需要的时候才进行IP地址分配的方式。动态IP地址和静态IP地址是对应的。所谓动态就是指当你每一次上网时,电信会随机分配

来源:黑核混拨ip代理

2019-04-01 10:26:14

使用动态IP服务器的好处

动态IP服务器就是DHCP服务器的一个俗称,动态主机设置协议(DynamicHostConfigurationProtocol,DHCP)是一个局域网的网络协议

来源:黑核混拨ip代理

2019-04-01 11:09:46

使用动态ip代理让你成为"隐形人"

使用动态ip代理让你成为"隐形人"!现如今,互联网已经深入人们生活中的衣食住行,可你知道吗,当你接入互联网的那一刻起,你的个人信息可能就已经泄露了。拿到你个人信

来源:黑核动态ip代理

2019-04-04 14:11:48

如何处理动态IP地址?

当前时代是一个构筑在网络基础之上的信息化时代,基于IP的各种新应用如网络视频、架设WEB、网络视频服务器、邮件系统、远程监控、游戏平台等等,也表现出强大的市场需

来源:黑核混拨ip代理

2019-04-08 10:32:30

动态IP地址的捕获及其应用

一、IP地址与IP地址的动态分配1.IP地址基本概念Internet依靠TCP/IP协议,在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的互联。在In

来源:

2019-04-08 10:39:54

Python爬虫在采集数据的时候如何解决ip被封

Python爬虫数据采集分析有一套在社会发展大洪流下,如果你对Python爬虫的看法仍然局限于恶意分析竞争对手网站,恶意采集信息这种片面观点上,那你真的out了

来源:黑核混拨ip代理

2019-01-18 16:21:49

不知道怎么样修改ip地址可以用黑核混拨IP软件

现在做推广越来越难做了,动不动就被封号,要么就是一个IP只能登陆一个账号,这就尴尬了,如果只用一个账号推广根本不见效啊,或者说见效也效果不大,只能大批量的做推广

来源:黑核混拨ip加速器网

2018-12-25 16:28:24

什么是代理ip?如何利用api提取代理ip

一、什么是代理ip代理,也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。使用代

来源:黑核混拨ip代理

2019-01-16 10:49:55

换ip软件帮您解决ip被封烦恼!

换ip软件帮您解决ip被封烦恼!我想做互联网工作的基本上都需要换下ip吧,很多时候我们做推广经常被封账号,特别是同一个IP自问自答马上封你没商量,但是这些推广也

来源:黑核混拨IP网

2018-12-25 15:52:02

为什么网站要限制python爬虫大量抓取

很多从事python爬虫的网友,在采集网站信息时常遇见一些数据显示在浏览器上却无法抓取的情况。这可能是因为对方有意不让爬虫抓取信息,当你的IP地址被网站封杀,就

来源:黑核混拨ip代理

2019-01-14 17:03:45

在线客服
大客户VIP渠道
点击这里给我发消息
讨论QQ群
客服电话
13318873961