火车头采集今日头条文章的教程
火车头采集今日头条文章的教程教程总目录:火车头采集器使用教程
今日头条的文章还是挺难采集的,主要原因有下面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">目前,伊朗里亚尔已经找到了一个合适的美元汇率。伊朗黑市和伊朗国家银行之间的汇率差异超过4倍。这在世界上更加罕见。这种情况的根源是美国对伊朗实施了最严厉的制裁。美国银行没有为任何伊朗货币和货物提供任何服务。伊朗货币很难流通。早在对伊朗,相对温和的奥巴马,伊朗里亚尔就经历了数十次贬值,最少达到40,000: 1。现在美国对伊朗,和伊朗里亚尔实施了更严厉的制裁,实际汇率肯定低于此。</p><div class=\"pgc-img\"><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\"><p class=\"pgc-img-caption\"></p></div><p>对伊朗,来说,货币兑换有其自身的原因。除了旧货币严重贬值之外,在过去一段时间里,伊朗还与印度,欧洲和其他国家交换了一些钞票。最初,这些国家名义上帮助伊朗度过了难关。然而,自去年底以来,一些以境外流通为名的假币开始出现在伊朗市场,制造出的假币足以混淆事实。一些俄罗斯媒体认为这是美国金融战争的一部分,因为世界上其他国家没有动机冒这样的信用风险来打击伊朗经济。</p><p>目前,世界上大多数国家的经济仍处于停滞状态。伊朗提前恢复了经济,一种新的货币随之诞生。虽然这可能不会令伊朗的经济较去年更好,但却可以令伊朗的经济倒退少一点,从而在世界上进一步排名。随着伊朗,石油以外的商品出口比例的增加,伊朗不仅推出了一种与人民币挂钩的新纸币,这是世界上最好的真实信用货币,而且还与数字人民币的未来发展挂钩。</p><div class=\"pgc-img\"><p class=\"pgc-img-caption\"></p></div><p>伊朗这次选择了正确的道路。未来,随着数字人民币的引入,伊朗将逐步完全摆脱国际贸易中的美元制裁,回归正常国家的地位。我们应该知道,过去40年来,伊朗一直受到美国的制裁,这也是人们批评它不如巴列维时期的一个重要原因。一旦美国不能对伊朗,实施制裁,伊朗应该能够在经济发展方面做很多事情。</p><p><br></p>"'.slice(6, -6),
上面这一步转码主要是转换\u003Cp\u003E这些字符用的,=\"之类的字符可以发现并没有正常转码。为什么没正常转码我也不知道。
那么我们直接把这些字符给替换下
\" img_width替换为.jpg" img_width
=\"替换为="
\" 替换为"
\"替换为"
上面第三个\"后面有个空格类的字符,直接复制即可。
然后我们设置一下HTML标签排除的选项,图像和段落这些标签不要选,保留下来。
我们测试下看看正文采集的效果吧
可以看到正文已经全部显示正常,图片标签也正常了。
到这里今日头条的采集基本就完成了大半了。
下面还有个重要的问题
今日头条好像有限制采集的,因为本人在采集过程中发现过采集内容为空的现象。可能是被检测到了UA或者是访问频率,或者其他导致的。
期间尝试了很多方法,有时候有效有时候又无效。整的我有点蒙逼。这一块目前还在跟今日头条斗智斗勇之中。目前这一块给不了大家太多的帮助。
建议是采集速度可以设置为1000ms到2000ms,采集线程设置为1,先这样降低下采集速度。
其他可以测试今日头条防采集策略的设置可以看下HTTP请求设置。
这里面可以更改cookie和UA设置
页:
[1]