分布式爬虫很难吗?用Python写一个小白也能听懂的分布式知乎爬虫
前言
很早就有采集知乎用户数据的想法,要实现这个想法,需要写一个网络爬虫(Web Spider)。因为在学习 python,正好 python 写爬虫也是极好的选择,于是就写了一个基于 python 的网络爬虫。
几个月前写了爬虫的初版,后来因为一些原因,暂时搁置了下来,最近重新拾起这个想法。首先优化了代码的结构,然后在学弟的提醒下,从多线程改成了多进程,一台机器上运行一个爬虫程序,会启动几百个子进程加速抓取。
但是一台机器的性能是有极限的,所以后来我使用 MongoDB 和 Redis 搭建了一个主从结构的分布式爬取系统,来进一步加快抓取的速度。
然后我就去好几个服务器厂商申请免费的试用,比如百度云、腾讯云、Ucloud…… 加上自己的笔记本,断断续续抓取了一个多周,才采集到300万知乎用户数据。中间还跑坏了运行网站的云主机,还好 自动
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python远程连接服务器上的Oracle数据库
Python远程连接服务器上的Oracle数据库 1、正确的开启方式 在你的IPython或者是Anaconda的jupyter中输入一下代码,其中: ‘username’—— 用户名 ‘password’——密码 ‘192.168.1.1:1521/service_name’——IP/端口号/服务名称 import cx_Oracle conn = cx_Oracle.connect('username','password','192.168.1.1:1521/service_name') 如果以上代码不会报错,那么你应该是已经成功连接数据库了。而如果报错,检查一下是什么问题。 2、暴露问题 (1)cx_Oracle未安装 如果上位安装cx_Oracle包,可以在cmd状态下,到Python安装目录下,使用pip命令完成安装。 pip install cx_Oracle (2)缺少instanctclient 如果本机没有安装Oracle数据库,又要通过Python访问远程服务器上的Oracle,那么需要在本机上安装instantclient。安装可以从Oracle官网获取安装包,...
- 下一篇
C#开源框架
原文: C#开源框架 Json.NET http://json.codeplex.com/ Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换。 Math.NET http://www.mathdotnet.com/ Math.NET的目标是为提供一款自身包含清晰框架的符号运算和数学运算/科学运算,它是C#开发的开源类库。Math.NET含了一个支持线性代数的解析器,分析复杂微分,解方程等等功能。 Faker.Net https://github.com/jonwingfield/Faker.Net 开发的时候是不是为测试数据烦恼?Faker.Net可以非常方便帮你生成大批量测试数据。例如人员表里面的姓名、性别什么的。 Html Agility Pack http://htmlagilitypack.codeplex.com/ ...
相关文章
文章评论
共有0条评论来说两句吧...