php中文网 | cnphp.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 266|回复: 0

火车头采集今日头条文章的教程

[复制链接]

2616

主题

2623

帖子

9286

积分

管理员

Rank: 9Rank: 9Rank: 9

UID
1
威望
0
积分
6548
贡献
0
注册时间
2021-4-14
最后登录
2024-4-20
在线时间
665 小时
QQ
发表于 2022-10-6 16:55:59 | 显示全部楼层 |阅读模式
火车头采集今日头条文章的教程



教程总目录:火车头采集器使用教程



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

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

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

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



今日头条文章列表地址

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

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

可以看到XHR里有很多内容,经过一个一个的手动排查发现了一个这样的地址:
https://www.toutiao.com/api/pc/f ... wLc5Oc03jE1KP8Rc0lz

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

image.png
发现都是转码后的内容,根据经验判断是Unicode编码转换的内容,我们直接复制网页内容转换下看看。
image.png
然后就可以发现他这个地址的转码内容实际就是返回的文章内容。

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

我们把这个地址填入火车头
image.png
然后重新分析那个地址,可以发现一些/group/6823289765643682312/这样的以/group/开头的内容

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

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

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

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

是不是很刺激。

那我们如何采集他呢?

看下图
image.png
提取规则:source_url": “/group/[参数]/"

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

我们测试下网址采集看看
image.png
测试网址采集完美运行,真棒!!!



2.内容采集

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

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

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

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

我们用下面的标题

title: '"伊朗发行新货币,直接挂钩人民币,经济重启"’.slice(6, -6),
image.png
标题还是挺好提取的,直接前后截取即可

开头字符串:title: '"

结尾字符串:"’.slice
image.png
然后是正文的采集

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

先看下正文前后啥样的。

前面: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这些字符用的,&#x3D;\&quot;之类的字符可以发现并没有正常转码。为什么没正常转码我也不知道。

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

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

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

\&quot; 替换为"

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



然后我们设置一下HTML标签排除的选项,图像和段落这些标签不要选,保留下来。
image.png
我们测试下看看正文采集的效果吧
image.png
可以看到正文已经全部显示正常,图片标签也正常了。

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

下面还有个重要的问题

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

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

建议是采集速度可以设置为1000ms到2000ms,采集线程设置为1,先这样降低下采集速度。
image.png
其他可以测试今日头条防采集策略的设置可以看下HTTP请求设置。

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





上一篇:9 月任天堂 Switch 日本销量达 49.5 万部,同比增 1.3 倍
下一篇:《龙珠 Z:卡卡罗特》次世代版明年 1 月上线,支持 4K60 帧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|php中文网 | cnphp.com ( 赣ICP备2021002321号-2 )51LA统计

GMT+8, 2024-4-20 16:47 , Processed in 0.175882 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

申明:本站所有资源皆搜集自网络,相关版权归版权持有人所有,如有侵权,请电邮(fiorkn@foxmail.com)告之,本站会尽快删除。

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