千家信息网

Python分布式爬虫的方法是什么

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"Python分布式爬虫的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python分布式爬虫的方法是什么"吧!环境、架构
千家信息网最后更新 2026年11月03日Python分布式爬虫的方法是什么

这篇文章主要讲解了"Python分布式爬虫的方法是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python分布式爬虫的方法是什么"吧!

环境、架构:

开发语言:Python2.7

开发环境:64位Windows8系统,4G内存,i7-3612QM处理器。

数据库:MongoDB 3.2.0、Redis 3.0.501

(Python编辑器:Pycharm;MongoDB管理工具:MongoBooster;Redis管理工具:RedisStudio)

爬虫框架使用 Scrapy,使用 scrapy_redis 和 Redis 实现分布式。

分布式中有一台机充当Master,安装Redis进行任务调度,其余机子充当Slaver只管从Master那里拿任务去爬。原理是:Slaver运行的时候,scrapy遇到Request并不是交给spider去爬,而是统一交给Master机上的Redis数据库,spider要爬的Request也都是从Redis中取来的,而Redis接收到Request后先去重再存入数据库,哪个Slaver要Request了再给它,由此实现任务协同。

使用说明:

Python需要安装好Scrapy、pymongo、json、base64、requests。

Master机只需要安装好Redis即可(内存要求大点),Slaver机需要安装python环境和MongoDB来存储数据。如果想要将数据都存储到一台机子上,直接改一下爬虫程序(pipeline)里面MongoDB的IP即可,或者建议搭建一个MongoDB集群。Redis和MongoDB都是安装好即可,不需要配置。

将你用来登录的微博账号和密码加入到 cookies.py 文件中,里面已经有两个账号作为格式参考了。

可以修改scrapy里面setting的设置,例如间隔时间、日志级别、redis的IP等等。

以上配置完以后运行 Begin.py 即可。重申Master机不需要跑程序,它的功能是利用Redis进行任务调度。Slaver机跑爬虫,新增一台Slaver机,只需要把python环境和MongoDB搭建好,然后将代码复制过去直接运行就行了。

项目源码

# encoding=utf-8import jsonimport base64import requests
"""输入你的微博账号和密码,可去淘宝买,一元七个。建议买几十个,微博反扒的厉害,太频繁了会出现302转移。或者你也可以把时间间隔调大点。"""myWeiBo = [ {'no': 'jiadieyuso3319@163.com', 'psw': 'a123456'}, {'no': 'shudieful3618@163.com', 'psw': 'a123456'},]

def getCookies(weibo): """ 获取Cookies """ cookies = [] loginURL = r'https://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.4.15)' for elem in weibo: account = elem['no'] password = elem['psw'] username = base64.b64encode(account.encode('utf-8')).decode('utf-8') postData = { "entry": "sso", "gateway": "1", "from": "null", "savestate": "30", "useticket": "0", "pagerefer": "", "vsnf": "1", "su": username, "service": "sso", "sp": password, "sr": "1440*900", "encoding": "UTF-8", "cdult": "3", "domain": "sina.com.cn", "prelt": "0", "returntype": "TEXT", } session = requests.Session() r = session.post(loginURL, data=postData) jsonStr = r.content.decode('gbk') info = json.loads(jsonStr) if info["retcode"] == "0": print "Get Cookie Success!( Account:%s )" % account cookie = session.cookies.get_dict() cookies.append(cookie) else: print "Failed!( Reason:%s )" % info['reason'] return cookies

cookies = getCookies(myWeiBo)print "Get Cookies Finish!( Num:%d)" % len(cookies)

感谢各位的阅读,以上就是"Python分布式爬虫的方法是什么"的内容了,经过本文的学习后,相信大家对Python分布式爬虫的方法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

爬虫 分布式 数据 方法 任务 环境 数据库 账号 装好 学习 运行 内存 内容 密码 工具 建议 时间 机子 程序 管理工具 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 没上市的科技互联网公司 易互联网科技有限公司 互联网金融 金融科技 互联网女皇 腾讯科技 互联网科技logo设计 深圳艾佳互联网科技 深圳期待互联网科技 须眉科技是互联网公司吗 常德市电业局互联网科技部 深圳市优智互联网科技有限公司 民营互联网公司国防科技 内蒙古九一互联网科技 互联网金融科技公司的优势 银行科技岗属于互联网吗 厦门江牛科技互联网 互联网科技快讯热点 图游互联网科技 互联网科技包装股份有限公司上市 华人运通互联网科技公司 互联网领先科技成果宣传视频 广东猪兼强互联网科技有限公司 互联网和科技技术 深圳市运趣互联网科技有限公司 和信科技工业互联网 互联网科技研发水平 徐州市互联网科技有限公司 深圳互联网科技的发展 抖集互联网科技技术咨询 兰石爱特工业互联网科技分公司 绵阳真晨互联网科技有限公司
0