php 用curl_exec 采集页面内容,结果 302重定向

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 用curl_exec 采集页面内容,结果 302重定向相关的知识,希望对你有一定的参考价值。

怎样采集链接的内容
在本地电脑上采集就可以,放到服务器上就会302重定向,curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);这个也用过了,也不行

加入这个参数即可:curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

更多关于curl的使用,请参考我的博客《php cURL 应用》
http://www.zjmainstay.cn/php-curl
参考技术A 尝试加入浏览器UA信息!

使用php蓝天采集器抓取今日头条ajax的文章内容

今日头条的数据都是ajax加载显示的,按照正常的url是抓取不到数据的,需要分析出加载出址,我们以 https://www.toutiao.com/search/?keyword=%E6%96%B0%E9%97%BB 为例来采集列表的文章

用谷歌浏览器打开链接,右键点击“审查”在控制台切换至network并点击XHR,这样就可以过滤图片、文件等等不必要的请求只看页面内容的请求

技术分享图片

由于页面是ajax加载的,所以将页面拉至最底部,会自动加载出更多文章,这时候控制台抓取到的链接就是我们真正需要的列表页链接:

https://www.toutiao.com/search_content/?offset=20&format=json&keyword=%E6%96%B0%E9%97%BB&autoload=true&count=20&cur_tab=1&from=search_tab

在蓝天采集中创建一个任务

技术分享图片

创建完毕点击“采集设置”,在“起始页网址”中填入上面抓取到的链接

技术分享图片

接下来匹配内容页网址,头条的文章网址格式是https://www.toutiao.com/group/数字/

点击“内容页网址”编写“匹配内容网址”规则:

(?<content1>http://toutiao.com/group/\d+/)

这是个正则规则,意思就是把匹配的网址装进捕获组content1中,然后在下面填写[内容1] 即对应上面的content1 就可获取到内容页链接

技术分享图片

可以点击测试查看是否成功抓取到了链接

技术分享图片

抓取成功就可以开始获取内容了

点击“获取内容”在字段列表右边可以添加默认的字段,如标题、正文等都可以智能识别,如需精准还可以自行编辑字段,支持正则、xpath、json等匹配内容

我们需要抓取文章的标题和正文,由于是ajax显示的所以要写规则匹配出内容,分析篇源码:https://www.toutiao.com/a6358823350874145025/ ,找到文章位置

技术分享图片

标题规则:articleInfo\s:\s{\stitle:\s‘[内容1]‘,

正文规则:content\s:\s‘[内容1]‘,\s*groupId

规则必须保证唯一性,不然会匹配到其他内容上去,将规则添加到字段中,获取方式选规则匹配:

技术分享图片

技术分享图片

规则编写完后点击保存,点击“测试”看看效果如何

技术分享图片

规则无误,抓取正常,抓取到的数据还可以发布到cms系统、直接数据库入库、保存为excel文件等,点击底部导航条的“发布设置”即可,好了今日头条的采集到这里就结束了,大家不妨动手试试!

以上是关于php 用curl_exec 采集页面内容,结果 302重定向的主要内容,如果未能解决你的问题,请参考以下文章

利用PHP从淘宝采集评论和成交数据

php curl_exec,服务器上开启了这个功能,但是提示无法加载

PHP中的curl_exec

php 文件获取内容,url_get_contents,file_get_contents,curl_exec

PHP通过伪造和模拟客户端COOKIE登陆来采集抓取远程网址

用PHP加载页面