阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法
查看: 5624|回复: 4

微信公众号爬虫 (基于中间人截获的爬虫核心实现,支持批量爬取公众号所有历史文章)

[复制链接]

4208

主题

210

回帖

12万

积分

管理员

管理员

Rank: 9Rank: 9Rank: 9

积分
126180
QQ
发表于 2017-5-12 19:26:33 | 显示全部楼层 |阅读模式
wechat_spider
微信公众号爬虫 (支持全自动化批量爬取微信公众号所有文章 Go语言实现)
注意
  • 开源代码仅限技术分享交流,请充分尊重公众号作者的知识产权以及劳动成果,同时作为有素质的爬虫开发人员请控制好抓取的频率,本人概不承担任何基于本代码实现的工程引起的责任或纠纷.
  • 此项目是微信公众号批量自动化爬虫的核心实现, 面向开发者开源, 可以当做go语言包引入到自己项目中, 完整产品必须二次开发实现,QQ交流群: 563954381
  • 微信的防作弊一直在不断更新完善,过于频繁的抓取可能导致微信账号被封禁,在需要大量抓取的任务请使用小号或者测试号进行

文档指南客户端:
android,iPhone等微信客户端平台, win和osx的微信客户端暂不兼容
代理协议: http && https, https需要导入certs文件夹的goproxy证书,并且添加受信权限,详细教程请google
安装
go1.7为作者已测试稳定版本 (go1.8有证书问题,请降级安装) go get github.com/sundy-li/wechat_spider
代理服务端
通过Man-In-Middle 代理方式获取微信服务端返回,自动模拟请求自动分页,抓取对应点击的所有历史文章
  • 15行代码实现一个简单的爬虫服务 simple_server.go
    1. package main

    2. import (
    3.         spider "github.com/sundy-li/wechat_spider"
    4. )

    5. func main() {
    6.         var port = "8899"
    7.         spider.InitConfig(&spider.Config{
    8.                 Verbose:    false, // Open to see detail logs
    9.                 AutoScroll: false, // Open to crawl scroll pages
    10.         })
    11.         spider.Regist(spider.NewBaseProcessor())
    12.         spider.Run(port)
    13. }
    复制代码

  • 上面贴的是一个精简的服务端,拦截客户端请求,将微信文章url打印到终端
  • js跳转由于微信新规则已经不可用 如果想自定义输出源以及实现批量自动化爬取,可以实现Processor接口的Output和NextBiz方法, 参考 custom_output_server.go
  • js跳转由于微信新规则已经不可用 抓取阅读数,点赞数请实现Processor接口的Output和NextUrl方法,参考custom_output_detail_server.go
  • 微信会屏蔽频繁的请求,所以历史文章的翻页请求调用了Sleep()方法, 默认每个请求休眠50ms,可以根据实际情况自定义Processor覆盖此方法
客户端使用:
(确保客户端 能正常访问 代理服务端的服务)
  • Android客户端使用方法: 运行后, 设置手机的代理为 本机ip 8899端口, 打开微信客户端, 点击任一公众号查看历史文章按钮, 即可爬取该公众号的所有历史文章(已经支持自动翻页爬取)
  • win/mac客户端,设置下全局代理对应 代理服务端的服务和端口,同理点击任一公众号查看历史文章按钮
批量自动化
  • js跳转由于微信新规则已经不可用 动态修改js实现批量化(不推荐使用,因为不方便控制),参考custom_output_server.go
  • 模拟点击实现批量自动化

Go版本(强烈推荐), 用法参考 robot-demo.go适用于Mac && WindowsPython版本(比较麻烦,不推荐使用)
  1. 只适用于windows端 :  Windows客户端获取批量公众号所有历史文章方法,对应原理请参考 [url]http://stackbox.cn/2016-07-21-weixin-spider-notes/[/url] ,同时也感谢博文作者提供此windows模拟点击的思路
  2.   1. 要求安装windows +  微信pc版本 + ActivePython3 + autogui, 设置windows下全局代理对应 代理服务端的服务和端口
  3.   2. 修改 win_client.py 中的 bizs参数, 通过pyautogui.position() 瞄点设置 first_ret, rel_link 坐标
  4.   3. 在examples目录下面, 执行 python win_client.py 将自动生成链接,模拟点击
复制代码


配置说明
  • AutoScroll : 自动翻页,必须关注后才能翻页
  • Compress : 过滤其他域的请求,节省带宽
  • Verbose : 是否打印一些log
  • SleepSecond : 翻页请求休眠时间最大值
TODO
  • 点赞数,阅读数 ← Complete!
  • 过滤其他请求(图片,视频等),节省带宽开销 ← Complete!
  • 本地缓存的清理,防止页面的请求不经过服务代理 ← Complete!
  • 评论(我个人觉得这个东西是没什么意义的)
源码地址:

游客,如果您要查看本帖隐藏内容请回复



捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权郑重声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。
4、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
5、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
6、如无法链接失效或侵犯版权,请给我们来信:jiandaima@foxmail.com

回复

使用道具 举报

0

主题

1

回帖

39

积分

新手上路

Rank: 1

积分
39
发表于 2017-11-8 09:30:46 | 显示全部楼层
登录可见评论
回复

使用道具 举报

0

主题

64

回帖

476

积分

中级会员

Rank: 3Rank: 3

积分
476
发表于 2017-12-9 21:47:10 | 显示全部楼层
登录可见评论
回复

使用道具 举报

0

主题

1

回帖

39

积分

新手上路

Rank: 1

积分
39
发表于 2018-5-17 09:39:10 | 显示全部楼层
登录可见评论
回复

使用道具 举报

0

主题

1

回帖

14

积分

新手上路

Rank: 1

积分
14
发表于 2019-8-10 14:42:34 | 显示全部楼层
登录可见评论
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

技术支持
在线咨询
QQ咨询
3351529868

QQ|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2024-4-26 20:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表