雷达智富

首页 > 内容 > 网页技术 > 正文

网页技术

火车头能不能采集今日头条的文章及西瓜视频

2021-04-12 火车头采集器 634
火车头采集器是一个相对最老牌的采集软件,在数据获取方面有很多优秀的功能值得学习,期初比较难入门,入门后就能感受到他的用途。

其实腾讯,头条,等一些个网站都是可以用火车头采集的,主要要使用浏览器抓包,抓取到了地址用替换法替换真实地址即可。

以上是抓取腾讯的采集地址,下面讲解今日头条采集抓包。


今日头条的文章还是挺难采集的,主要原因有下面2点

1.文章的真正列表不好找

2.内容采集需要转码和字符替换操作

3.今日头条对采集有限制

 

今日头条文章列表地址

https://www.toutiao.com/ch/news_finance/

我们打开今日头条这个财经类别文章的地址,然后浏览器F12,点击network、XHR

然后刷新网页

可以看到XHR里有很多内容,经过一个一个的手动排查发现了一个这样的地址:

https://www.toutiao.com/api/pc/feed/?category=news_finance&utm_source=toutiao&widen=1&max_behot_time=0&max_behot_time_tmp=0&tadrequire=true&as=A1054EAB11C40A9&cp=5EB1B4906A49DE1&_signature=PQhnZgAgEBD7X97rCkkfQD0JJnAAGO.ElFM7lJj2UCblkORtuYC2wgevFFpqVsBUgXK8lPyCfJ-biJ3IlG2R2.fvu3uKeQsO7ly0LG8eku93AXyEwLc5Oc03jE1KP8Rc0lz

我们复制这个地址在浏览器访问看下

发现都是转码后的内容,根据经验判断是Unicode编码转换的内容,我们直接复制网页内容转换下看看。

然后就可以发现他这个地址的转码内容实际就是返回的文章内容。

那么我们就完成了第一步,文章地址的寻找。

我们把这个地址填入火车头

然后重新分析那个地址,可以发现一些/group/6823289765643682312/这样的以/group/开头的内容

然后我们看下今日头条文章的实际地址是:

https://www.toutiao.com/a6823252568194417164/

https://www.toutiao.com/a 开头,后面是一串数字,这个数字就是上面/group/后面的内容。不信我们替换访问看看

https://www.toutiao.com/a6823289765643682312/

是不是很刺激。

那我们如何采集他呢?

看下图

提取规则:source_url”: “/group/[参数]/”

拼接地址:https://www.toutiao.com/a[参数1]/

我们测试下网址采集看看

测试网址采集完美运行,真棒!!!

 

2.内容采集

网址找到了我们下面来分析下内容吧

文章地址:https://www.toutiao.com/a6823289765643682312/

查看文章的源代码,搜索文章标题

开头有个前后以title包含的标题,但是本教程没有用这个,具体什么原因我忘了。前些天我采集时候刚开始也是取得这里面的标题,后来发现了一些错误然后舍弃了这一处。具体什么错误我忘了。。。

我们用下面的标题

title: ‘"伊朗发行新货币,直接挂钩人民币,经济重启"’.slice(6, -6),

标题还是挺好提取的,直接前后截取即可

开头字符串:title: ‘"

结尾字符串:"’.slice

 

然后是正文的采集

正文比较难办,。因为前后有一些特殊字符,这些特殊字符再经过转码,变得稀奇古怪的。我们需要对前后的内容过滤一下。

先看下正文前后啥样的。

前面:content: ‘"\u003Cp\u003E

后面:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E"’.slice(6, -6),

这中间的就是正文内容。

那么我们正文就可以从下面两处之间截取

开头字符串:content: ‘"

结尾字符串:"’

 

前面的\u003Cp\u003E转码后是<p>,

后面的\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E

转码后是</p><p><br></p>

这些<p>是正文的一部分我们还是需要这些标签的。所以不要从这俩地方开始截取。

 

然后正文里有配图,图片调用需要<div class=”pgc-img”><img src=这个标签的。但是原文里标签都成了\&quot;和&#x3D;\&quot;之类的东西。所以我们还需要做下面的工作,才能正常让文章显示图片。

先在火车头上做一个字符编码解码

文章原文:

content: '&quot;\u003Cp\u003E目前,伊朗里亚尔已经找到了一个合适的美元汇率。伊朗黑市和伊朗国家银行之间的汇率差异超过4倍。这在世界上更加罕见。这种情况的根源是美国对伊朗实施了最严厉的制裁。美国银行没有为任何伊朗货币和货物提供任何服务。伊朗货币很难流通。早在对伊朗,相对温和的奥巴马,伊朗里亚尔就经历了数十次贬值,最少达到40,000: 1。现在美国对伊朗,和伊朗里亚尔实施了更严厉的制裁,实际汇率肯定低于此。\u003C\u002Fp\u003E\u003Cdiv class&#x3D;\&quot;pgc-img\&quot;\u003E\u003Cimg src&#x3D;\&quot;http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F00668b73977e48ad9dce70dff9d092d8\&quot; img_width&#x3D;\&quot;616\&quot; img_height&#x3D;\&quot;415\&quot; alt&#x3D;\&quot;伊朗发行新货币,直接挂钩人民币,经济重启\&quot; inline&#x3D;\&quot;0\&quot;\u003E\u003Cp class&#x3D;\&quot;pgc-img-caption\&quot;\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E2020年5月4日,伊朗议会最终通过《伊朗货币和银行法》,决定将里亚尔将会改为新货币“图们江”。新货币将以1元兑换1万里亚尔元,伊朗,与人民币的汇率预计为1: 1。事实上,早在今年3月,伊朗就决定在国际贸易中使用人民币结算,因为它无法购买医疗用品。现在,人民币汇率问题是第一步。\u003C\u002Fp\u003E\u003Cp\u003E伊朗发行的新货币将与里亚尔共存一段时间。新货币的目的首先是稳定金融秩序,其次是从5月2日起重新启动伊朗经济。这是一个极好的机会。过去,作为一个拥有数千万人口的国家,它会消耗大量资源来取代纸币。现在是时候利用经济停滞和重启来完成货币替换了。\u003C\u002Fp\u003E\u003Cdiv class&#x3D;\&quot;pgc-img\&quot;\u003E\u003Cimg src&#x3D;\&quot;http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F010ca3dd18db4c16acf8523184e3b6f5\&quot; img_width&#x3D;\&quot;618\&quot; img_height&#x3D;\&quot;378\&quot; alt&#x3D;\&quot;伊朗发行新货币,直接挂钩人民币,经济重启\&quot; inline&#x3D;\&quot;0\&quot;\u003E\u003Cp class&#x3D;\&quot;pgc-img-caption\&quot;\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E对伊朗,来说,货币兑换有其自身的原因。除了旧货币严重贬值之外,在过去一段时间里,伊朗还与印度,欧洲和其他国家交换了一些钞票。最初,这些国家名义上帮助伊朗度过了难关。然而,自去年底以来,一些以境外流通为名的假币开始出现在伊朗市场,制造出的假币足以混淆事实。一些俄罗斯媒体认为这是美国金融战争的一部分,因为世界上其他国家没有动机冒这样的信用风险来打击伊朗经济。\u003C\u002Fp\u003E\u003Cp\u003E目前,世界上大多数国家的经济仍处于停滞状态。伊朗提前恢复了经济,一种新的货币随之诞生。虽然这可能不会令伊朗的经济较去年更好,但却可以令伊朗的经济倒退少一点,从而在世界上进一步排名。随着伊朗,石油以外的商品出口比例的增加,伊朗不仅推出了一种与人民币挂钩的新纸币,这是世界上最好的真实信用货币,而且还与数字人民币的未来发展挂钩。\u003C\u002Fp\u003E\u003Cdiv class&#x3D;\&quot;pgc-img\&quot;\u003E\u003Cimg src&#x3D;\&quot;http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002F26814e4eb10646fcb8197337fd6eec43\&quot; img_width&#x3D;\&quot;621\&quot; img_height&#x3D;\&quot;390\&quot; alt&#x3D;\&quot;伊朗发行新货币,直接挂钩人民币,经济重启\&quot; inline&#x3D;\&quot;0\&quot;\u003E\u003Cp class&#x3D;\&quot;pgc-img-caption\&quot;\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E伊朗这次选择了正确的道路。未来,随着数字人民币的引入,伊朗将逐步完全摆脱国际贸易中的美元制裁,回归正常国家的地位。我们应该知道,过去40年来,伊朗一直受到美国的制裁,这也是人们批评它不如巴列维时期的一个重要原因。一旦美国不能对伊朗,实施制裁,伊朗应该能够在经济发展方面做很多事情。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E\u003C\u002Fp\u003E&quot;'.slice(6, -6),转码后:content: '"<p>目前,伊朗里亚尔已经找到了一个合适的美元汇率。伊朗黑市和伊朗国家银行之间的汇率差异超过4倍。这在世界上更加罕见。这种情况的根源是美国对伊朗实施了最严厉的制裁。美国银行没有为任何伊朗货币和货物提供任何服务。伊朗货币很难流通。早在对伊朗,相对温和的奥巴马,伊朗里亚尔就经历了数十次贬值,最少达到40,000: 1。现在美国对伊朗,和伊朗里亚尔实施了更严厉的制裁,实际汇率肯定低于此。</p><div class=\"pgc-img\"><img src=\"http://p1.pstatp.com/large/pgc-image/00668b73977e48ad9dce70dff9d092d8\" img_width=\"616\" img_height=\"415\" alt=\"伊朗发行新货币,直接挂钩人民币,经济重启\" inline=\"0\"><p class=\"pgc-img-caption\"></p></div><p>2020年5月4日,伊朗议会最终通过《伊朗货币和银行法》,决定将里亚尔将会改为新货币“图们江”。新货币将以1元兑换1万里亚尔元,伊朗,与人民币的汇率预计为1: 1。事实上,早在今年3月,伊朗就决定在国际贸易中使用人民币结算,因为它无法购买医疗用品。现在,人民币汇率问题是第一步。</p><p>伊朗发行的新货币将与里亚尔共存一段时间。新货币的目的首先是稳定金融秩序,其次是从5月2日起重新启动伊朗经济。这是一个极好的机会。过去,作为一个拥有数千万人口的国家,它会消耗大量资源来取代纸币。现在是时候利用经济停滞和重启来完成货币替换了。</p><div class=\"pgc-img\"><img src=\"http://p9.pstatp.com/large/pgc-image/010ca3dd18db4c16acf8523184e3b6f5\" img_width=\"618\" img_height=\"378\" alt=\"伊朗发行新货币,直接挂钩人民币,经济重启\" inline=\"0\"><p class=\"pgc-img-caption\"></p></div><p>对伊朗,来说,货币兑换有其自身的原因。除了旧货币严重贬值之外,在过去一段时间里,伊朗还与印度,欧洲和其他国家交换了一些钞票。最初,这些国家名义上帮助伊朗度过了难关。然而,自去年底以来,一些以境外流通为名的假币开始出现在伊朗市场,制造出的假币足以混淆事实。一些俄罗斯媒体认为这是美国金融战争的一部分,因为世界上其他国家没有动机冒这样的信用风险来打击伊朗经济。</p><p>目前,世界上大多数国家的经济仍处于停滞状态。伊朗提前恢复了经济,一种新的货币随之诞生。虽然这可能不会令伊朗的经济较去年更好,但却可以令伊朗的经济倒退少一点,从而在世界上进一步排名。随着伊朗,石油以外的商品出口比例的增加,伊朗不仅推出了一种与人民币挂钩的新纸币,这是世界上最好的真实信用货币,而且还与数字人民币的未来发展挂钩。</p><div class=\"pgc-img\"><img src=\"http://p9.pstatp.com/large/pgc-image/26814e4eb10646fcb8197337fd6eec43\" img_width=\"621\" img_height=\"390\" alt=\"伊朗发行新货币,直接挂钩人民币,经济重启\" inline=\"0\"><p class=\"pgc-img-caption\"></p></div><p>伊朗这次选择了正确的道路。未来,随着数字人民币的引入,伊朗将逐步完全摆脱国际贸易中的美元制裁,回归正常国家的地位。我们应该知道,过去40年来,伊朗一直受到美国的制裁,这也是人们批评它不如巴列维时期的一个重要原因。一旦美国不能对伊朗,实施制裁,伊朗应该能够在经济发展方面做很多事情。</p><p><br></p>"'.slice(6, -6),上面这一步转码主要是转换\u003Cp\u003E这些字符用的,&#x3D;\&quot;之类的字符可以发现并没有正常转码。为什么没正常转码我也不知道。

那么我们直接把这些字符给替换下

\&quot; img_width替换为.jpg" img_width


&#x3D;\&quot;替换为="


\&quot; 替换为"


\&quot;替换为"

上面第三个\&quot;后面有个空格类的字符,直接复制即可。

 

然后我们设置一下HTML标签排除的选项,图像和段落这些标签不要选,保留下来。

 

我们测试下看看正文采集的效果吧

可以看到正文已经全部显示正常,图片标签也正常了。

到这里今日头条的采集基本就完成了大半了。

下面还有个重要的问题

今日头条好像有限制采集的,因为本人在采集过程中发现过采集内容为空的现象。可能是被检测到了UA或者是访问频率,或者其他导致的。

期间尝试了很多方法,有时候有效有时候又无效。整的我有点蒙逼。这一块目前还在跟今日头条斗智斗勇之中。目前这一块给不了大家太多的帮助。

建议是采集速度可以设置为1000ms到2000ms,采集线程设置为1,先这样降低下采集速度。

 

其他可以测试今日头条防采集策略的设置可以看下HTTP请求设置。

这里面可以更改cookie和UA设置

赞一波!2

文章评论

全部评论