{"id":13414823,"url":"https://github.com/LiuXingMing/SinaSpider","last_synced_at":"2025-03-14T22:32:13.163Z","repository":{"id":84821460,"uuid":"53953564","full_name":"LiuXingMing/SinaSpider","owner":"LiuXingMing","description":"新浪微博爬虫（Scrapy、Redis）","archived":false,"fork":false,"pushed_at":"2018-09-05T10:14:30.000Z","size":85,"stargazers_count":3264,"open_issues_count":60,"forks_count":1517,"subscribers_count":250,"default_branch":"master","last_synced_at":"2024-10-29T17:42:09.709Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LiuXingMing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-03-15T14:57:02.000Z","updated_at":"2024-10-27T19:52:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"dd59605c-790e-4aa7-92d3-69e5e320075f","html_url":"https://github.com/LiuXingMing/SinaSpider","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiuXingMing%2FSinaSpider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiuXingMing%2FSinaSpider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiuXingMing%2FSinaSpider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiuXingMing%2FSinaSpider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiuXingMing","download_url":"https://codeload.github.com/LiuXingMing/SinaSpider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243658055,"owners_count":20326459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T21:00:37.333Z","updated_at":"2025-03-14T22:32:12.885Z","avatar_url":"https://github.com/LiuXingMing.png","language":"Python","funding_links":[],"categories":["Python","Crawler"],"sub_categories":[],"readme":"**Sina_Spider1: 《[新浪微博爬虫分享（一天可抓取 1300 万条数据）](http://blog.csdn.net/bone_ace/article/details/50903178)》**\n\u003cbr\u003e **Sina_Spider2: 《[新浪微博分布式爬虫分享](http://blog.csdn.net/bone_ace/article/details/50904718)》**\n\u003cbr\u003e **Sina_Spider3: 《[新浪微博爬虫分享（2016年12月01日更新）](http://blog.csdn.net/bone_ace/article/details/53379904)》**\n\u003cbr\u003e\n\u003cbr\u003e\nSina_Spider1为单机版本。\u003cbr\u003e\nSina_Spider2在Sina_Spider1的基础上基于scrapy_redis模块实现分布式。\u003cbr\u003e\nSina_Spider3增加了Cookie池的维护，优化了种子队列和去重队列。\u003cbr\u003e\n\u003cbr\u003e\n三个版本的详细介绍请看各自的博客。\n遇到什么问题请尽量留言，方便后来遇到同样问题的同学查看。也可加一下QQ交流群：\u003ca target=\"_blank\" href=\"//shang.qq.com/wpa/qunwpa?idkey=a3e1d79f8c7e12b9db5ac680375d7174a91384f288d3ba16e1781c2587872560\"\u003e\u003cimg border=\"0\" src=\"http://pub.idqqimg.com/wpa/images/group.png\" alt=\"微博爬虫交流群\" title=\"微博爬虫交流群\"\u003e\u003c/a\u003e。\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n --------------------------------------------------------------------------\n\u003cbr\u003e\n20161215更新：\n\u003cbr\u003e\n有人反映说爬虫一直显示爬了0页，没有抓到数据。\n\u003cbr\u003e\n1、把settings.py里面的LOG_LEVEL = 'INFO'一行注释掉，使用默认的\"DEBUG\"日志模式，运行程序可查看是否正常请求网页。\n\u003cbr\u003e\n2、注意程序是有去重功能的，所以要清空数据重新跑的话一定要把redis的去重队列删掉，否则起始ID被记录为已爬的话也会出现抓取为空的现象。清空redis数据 运行cleanRedis.py即可。\n\u003cbr\u003e\n3、另外，微博开始对IP有限制了，如果爬的快 可能会出现403，大规模抓取的话需要加上代理池。\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n ---------------------------------------------------------------------------\n\u003cbr\u003e\n20170323更新：\n\u003cbr\u003e微博从昨天下午三点多开始做了一些改动，原本免验证码获取Cookie的途径已经不能用了。以前为了免验证码登录，到处找途径，可能最近爬的人多了，给封了。\n\u003cbr\u003e那么就直面验证码吧，走正常流程登录，才没那么容易被封。此次更新主要在于Cookie的获取途径，其他地方和往常一样（修改了cookies.py，新增了yumdama.py）。\n\u003cbr\u003e加了验证码，难度和复杂程度都提高了一点，对于没有编程经验的同学可能会有一些难度。\n\u003cbr\u003e验证码处理主要有两种：手动输入和打码平台自动填写（手动输入配置简单，打码平台输入适合大规模抓取）。\n\u003cbr\u003e\u003cbr\u003e手动方式流程：\n\u003cbr\u003e\n1、下载PhantomJS.exe，放在python的安装路径（适合Windows系统，Linux请找百度）。\n\u003cbr\u003e\n2、运行launch.py启动爬虫，中途会要求输入验证码，查看项目路径下新生成的aa.png，输入验证码 回车，即可。\n\u003cbr\u003e\n\u003cbr\u003e打码方式流程：\n\u003cbr\u003e\n1、下载PhantomJS.exe，放在python的安装路径。\n\u003cbr\u003e\n2、安装Python模块PIL（请自行百度，可能道路比较坎坷）\n\u003cbr\u003e\n3、验证码打码：我使用的是 http://www.yundama.com/ （真的不是打广告..），将username、password、appkey填入yumdama.py（正确率挺高，weibo.cn正常的验证码是4位字符，1元可以识别200个）。\n\u003cbr\u003e（如果一直出现302，调试发现yumdama.py一直返回空字符串，可将yumdama.py中的apiurl改成 'http://api.yundama.net:5678/api.php' 试试，在第38行前后，原值是 'http://api.yundama.com/api.php' 。）\n\u003cbr\u003e\n4、cookies.py中设置IDENTIFY=2，运行launch.py启动爬虫即可。\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n ---------------------------------------------------------------------------\n\u003cbr\u003e\n20170405更新：\n\u003cbr\u003e微博从4月1日开始对IP限制更严了，很容易就403 Forbidden了，解决的办法是加代理。从16年12月更新代码后爬微博的人多了许多，可能对weibo.cn造成了挺多无效访问。所以此次代码就不更新了，过滤一些爬虫新手，如果仍需大量抓取的，在middleware.py中加几行代码，带上代理就行了，难度也不大。没加代理的同学将爬虫速度再降低一点，还是能跑的。\u003cbr\u003e\n可能有挺多同学需要微博数据写论文，在群里找一下已有数据的同学吧，购买代理也不便宜。\u003cbr\u003e\n（我也没怎么跑微博，手上也没什么数据）\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n ---------------------------------------------------------------------------\n\u003cbr\u003e\n20170407更新：\n\u003cbr\u003e有些同学还用着SinaSpider1，现将SinaSpider1中获取Cookie的代码也作了更新，使用方法和SinaSpider3的一样，见上面的更新说明。\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n ---------------------------------------------------------------------------\n\u003cbr\u003e\n20170410更新：\n\u003cbr\u003e许多同学问微博帐号哪里买，淘宝上禁的有一点严，所以直接搜可能没搜到。需要的同学可以搜店铺名称：账号素材生产基地 或 互联网账号营销中心，看店铺里的商品，有老客户链接。偶尔会断货，购买多少自行斟酌。非广告，不需要的请忽略。\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n ---------------------------------------------------------------------------\n\u003cbr\u003e\n20170426更新：\n\u003cbr\u003e从昨天下午开始，weibo.cn的登录方式又变了，关闭了原来的登录页面，采用m.weibo.com的登录途径，登录过程中可能会出现图形解锁的验证码。隐约感觉有几个微博官方反爬虫的人正在暗处默默地盯着我，说不定什么时候就要请我去喝茶了。。\n唉，图形解锁应该也是可以破解的，但是最近事多，要过两个星期才有空研究，有需要的可以等等，或者大伙自己可以研究一下，按像素识别。\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n ---------------------------------------------------------------------------\n\u003cbr\u003e\n20170509更新：\n\u003cbr\u003e1、http://weibo.cn改成了https://weibo.cn。\n\u003cbr\u003e2、图形解锁验证码的破解见博客 [《图形解锁破解（附Python代码）》](http://blog.csdn.net/bone_ace/article/details/71056741) 。微博爬虫的Cookie获取模块请自行更新。\n\u003cbr\u003e\u003cbr\u003e\n\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLiuXingMing%2FSinaSpider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLiuXingMing%2FSinaSpider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLiuXingMing%2FSinaSpider/lists"}