怎么批量抓取微信公众号文章自动抓取文章中的图片呢

之前看以为大神写了一个工具nodejs 寫的,使用的是 anyproxy 做代理使用手机抓取,除了抓取历史记录还可以抓取点赞数、阅读数、赞赏数等。但是真的好难用我们这些写内容嘚妹子看着就头疼。

后来试了很多软件比如神箭手啊之类的,但是用起来还是需要技术功底的我们这些搞内容写作,写文字还可以寫代码就蒙蔽了。

我这找了好多方法看到个免费的软件可以抓取。

点击官网里面的“采集”

然后点击启动就好了不过抓取时间得半小時。

直接抓到自己账号的素材库里面

本文将以搜狗微信公众号文章自動抓取文章为例介绍使用八爪鱼采集网页文章正文的方法。文章正文里一般包括文本和图片两种本文将采集文章正文中的文本+图片URL。

將采集以下字段:文章标题、时间、来源和正文(正文中的所有文本将合并到一个excel单元格中,将使用到“自定义数据合并方式”功能請大家注意)。同时采集文章正文中的文本+图片URL,将用到“判断条件”“判断条件”的使用,有很多需要注意的地方以下两个教程,大家可先熟悉一下

“自定义数据合并方式”详解教程:

“判断条件”详解教程:

l 分页列表信息采集

1)进入主界面,选择“自定义模式

2)要采集的网址URL制粘贴到网站输入框中点击保存网址

1)在页面右上角,打开“流程”以展现出“流程设计器”“定制当湔操作”两个板块。网页打开后默认显示“热门”文章。下拉页面找到并点击“加载更多内容”按钮,在操作提示框中选择“更多操作”

2)选择“循环点击单个元素”,以创建一个翻页循环

由于此网页涉及Ajax技术我们需要进行一些高级选项的设置。选中“点击元素”步骤打开“高级选项”,勾选“Ajax加载数据”设置时间为“2秒”

注:AJAX即延时加载、异步更新的一种脚本技术,通过在后台与服务器进行尐量数据交换可以在不重新加载整个网页的情况下,对网页的某部分进行更新

表现特征:a、点击网页中某个选项时,大部分网站的网址不会改变;b、网页不是完全加载只是局部进行了数据加载,有所变化

验证方式:点击操作后,在浏览器中网址输入栏不会出现加載中的状态或者转圈状态。

观察网页我们发现,通过5次点击“加载更多内容”页面加载到最底部,一共显示100篇文章因此,我们设置整个“循环翻页”步骤执行5次选中“循环翻页”步骤,打开“高级选项”打开“满足以下条件时退出循环”,设置循环次数等于“5次”点击“确定”

步骤3:创列表循环并提取数据

1)移动鼠标选中页面里第一条文章链接系统会自动识别相似链接,在操作提示框中选择“选中全部”

2)选择“循环点击每个链接”

3)系统会自动进入文章详情页。点击需要采集的字段(这里先点击了文章标题)在操莋提示框中,选择“采集该元素的文本”文章发布时间、文章来源字段的采集方法同理

4)接下来开始采集文章正文。先点击文章正文的苐一段系统会自动识别页面内的同类元素,选择“选中全部”

5)可以看到所有的正文段落均被选中,变为绿色选择“采集以下元素攵本”

注意:在字段表中,可进行字段的自定义修改

6)经过如上操作正文就会被全部采集下来(默认为每一段正文为一个单元格)。一般而言我们希望采集的正文,合并为同一个单元格点击“自定义数据字段”按钮,选择“自定义数据合并方式”勾选“同一字段多佽提取合并为一行,即追加到同一字段例如正文分页合并”,再点击“确定”

“自定义数据字段”按钮

选择“自定义数据合并方式”

1)選中整个“循环步骤”打开“高级选项”,可以看到八爪鱼默认生成的是固定元素列表,定位的是前20篇文章的链接

2)在火狐浏览器中咑开要采集的网页并观察源码我们发现,通过此条Xpath:

3)将修改后的Xpath复制粘贴到八爪鱼中所示位置,然后点击“确定”

步骤5:修改流程圖结构

我们继续观察通过5次点击“加载更多内容”后,此网页加载出全部100篇文章因而我们配置规则的思路是,先建立翻页循环加载絀全部100篇文章,再建立循环列表提取数据

1)选中整个“循环”步骤,将其拖出“循环翻页”步骤如果不进行此项操作,那么将会出现佷多重复数据

拖动完成后如下图所示

步骤6:数据采集及导出

1)点击左上角的“保存”,然后点击“开始采集”选择“启动本地采集”

2)采集完成后,会跳出提示选择导出数据”,选择合适的导出方式将采集好的数据导出

3)这里我们选择excel作为导出为格式,数据導出后如下图

4)如上图部分文章的正文没有采集到。那是因为系统自动生成的文章正文的循环列表的Xpath://*[@id="js_content"]/P,定位不到此篇文章的正文將Xpath修改为://*[@id="js_content"]//P,所有的文章正文均可被定位到

通过前6个步骤我们仅采集了微信公众号文章自动抓取文章里的文本内容,并不包括文章里的圖片URL如果需要采集图片URL,则需往规则里加入一个判断条件:对文章内容列表进行判断如果包含img元素(图片),则执行图片采集分支;洳果不包含img元素(图片)则执行文本采集分支。

同时在八爪鱼中,默认对左侧分支设置判断条件,满足此判断条件则执行左侧分支;默认最右侧分支为“不判断,总是执行该分支”即当不满足左侧分支的判断条件时,则执行最右侧分支

回到此规则,即对左侧分支设置条件:如果包含img元素(图片)则执行左侧分支;如果不满足左侧条件分支的条件(即不包含img元素),则执行右侧分支具体操作洳下:

1)从左侧工具栏,往流程中拖入一个“判断条件”步骤(选定图标拖住不放拖入箭头所示的绿色加号位置)

2)流程图中出现判断條件。我们将“提取数据”步骤移动到右侧分支中(绿色加号处)。再点击右侧分支在出现的结果页面(分支条件检测结果-检测结果總是True)点击“确定”

“提取元素”步骤,拖入右侧分支

右侧分支-检测结果总是True

3)点击左侧分支在出现的结果页面(分支条件检测结果-檢测结果总是True)点击“确定”。然后对其设置判断条件:勾选“当前循环项包含元素”输入元素Xpath://img(代表图片),再点击“确定”

对左側分支设置判断条件

4)左侧分支条件设置完毕后,再进行提取数据步骤从左侧工具栏,拖入一个“提取数据”步骤到流程图中的左側分支中(绿色加号处),然后选中页面内一张图片在操作提示框中,选择“采集该图片地址”

拖入新的“提取数据”步骤到左侧分支

5)选中右侧分支的“提取数据”步骤,点击“自定义数据字段”按钮选择“自定义定位元素方式”,将红框中的“元素匹配的Xpath”:

6)選中左侧分支的“提取数据”步骤点击“自定义数据字段”按钮,选择“自定义定位元素方式”参照右侧分支相同位置的Xpath进行修改:“元素匹配的Xpath”改为://*[@id="js_content"]/p[1]/img[1]“相对Xpath”改为:/img[1]然后点击“确定”

7)选中左侧分支的“提取数据”步骤,点击“自定义数据字段”按钮选择“自定义数据合并方式”,如图进行勾选勾选后,多次提取的正文将追加为一个字段

8)注意在八爪鱼中,判断条件里各分支中的“提取数据”步骤中的字段名需相同字段个数需一致。这里我们将左右两个分支中,提取的字段名均改为“正文”

9)如上整个判断条件設置完毕。点击左上角的“保存”“开始采集”我们发现,在导出的excel表格中图片地址为一堆乱码。这是为什么呢继续观察网页——搜狗微信公众号文章自动抓取文章正文里的图片,需下拉滚动才能加载出来,加载出来后才能采集到正确的图片地址因而,在打开攵章后需对其进行设置“页面加载完成后向下滚动”。在这里设置滚动次数为“30次”,每次间隔“2秒”滚动方式为“向下滚动一屏”

微信公众号文章自动抓取文章正文里的图片,需下拉滚动才能加载出来

设置“页面加载完成后向下滚动”

注意:这里的滚动次数、时間、方式的设置,会影响采集数据的速度、质量本文仅做参考,大家可按需设置

10)重新启动采集并导出数据,数据导出后如图所示:

說明:因搜狗微信公众号文章自动抓取文章中的图片需经过下拉滚动,方可加载出来在采集过程中,大量时间用在等待图片加载因洏采集速度较慢。如果没有采集图片的需求直接使用文本采集,无需等待图片加载采集速度会快很多。

各位小伙儿伴儿一定深受过采集微信公众号文章自动抓取公众号之苦吧!特别是!!!!!!公众号历史信息!!!这丫除了通过中间代理采集APP,还真没什么招数能拿箌数据啊!

直到············

前段时间晚上微信公众号文章自动抓取官方发布了一个文章:点我

大致意思是说以后发布文章的时候可鉯直接插入其它公众号的文章了

诶妈呀!这不是一直需要的采集接口嘛!啧啧 天助我也啊!来来·········下面大致的说一下方法。

1、首先你需要一个订阅号! 公众号、企业号是否可行我不清楚因为我木有·····

微信公众号文章自动抓取公众号登录我没仔细看。

这個暂且不说了我使用的是selenium 驱动浏览器获取Cookie的方法,来达到登录的效果

3、使用requests携带Cookie、登录获取URL的token(这玩意儿很重要每一次请求都需要带仩它)像下面这样:

4、使用获取到的token,和公众号的微信公众号文章自动抓取号(就是数字+字符那种)获取到公众号的fakeid(你可以理解公众號的标识)

我们在搜索公众号的时候浏览器带着参数以GET方法想红框中的URL发起了请求。请求参数如下:

5、点击我们搜索到的公众号之后又發现一个请求:

好了···最后一步,获取所有文章需要处理一下翻页翻页请求如下:

我大概看了一下,极客学院每一页大概至少有5条信息也就是总文章数/5 就是有多少页。但是有小数我们取整,然后加1就是总页数了

item.get(‘link’)就是我们需要的公众号文章连接啦!继续请求这個URL提取里面的内容就是啦!

ps:查看完整测试代码请点击阅读原文,在文末

作者:崔庆才(中国统计网特邀认证作者)

我要回帖

更多关于 微信公众号文章自动抓取 的文章

 

随机推荐