求助!天猫的商品详情页怎么都采集不到内容,之前还好好的~~~

发布于 2021-12-01 06:19:44 字数 709 浏览 856 评论 9

天猫的商品详情页(http://detail.tmall.com/item.htm?id=45028136433) 两周前还能用snoopy采集到内容,但最近应该又修改了什么,curl(cookies也试了)、snoopy、fopen、file_get_contents都试过了,根本采集不到,不是返回空就是一个无实质内容的302页面。

用httpwatch看了下,中间经过了好几次跳转,其中有一个是https,但之前能采集的时候我记得好像也是跳转了多次,snoopy就能轻松采集到。httpwatch截图如下:


自己用的snoopy采集函数:



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

千笙结 2021-12-03 18:58:48

写爬虫的童鞋可以试试神箭手云爬虫,自带JS渲染、代理ip、验证码识别等功能,还可以发布和导出爬取的数据,生成图表等,都在云端进行,不需要安装开发环境。

好听的两个字的网名 2021-12-03 18:58:36

http://hws.m.taobao.com/cache/wdetail/5.0/?id=

这个地址是什么地址?

刚开始学抓淘宝数据,我以为直接抓这种页面

https://item.taobao.com/item.htm?id= 

鹤舞 2021-12-03 18:57:36

因为你在抓取https,需要一些额外的设置。

看这里:http://php.net/manual/zh/migration56.openssl.php

推荐用这种方法:

http://hws.m.taobao.com/cache/wdetail/5.0/?id=45028136433

============================================

file_get_contents():

$arrContextOptions=array(
    "ssl"=>array(
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ),
);
$url='https://detail.tmall.com/item.htm?id=45028136433';
$response = file_get_contents($url, false, stream_context_create($arrContextOptions));
echo strip_tags($response);

curl加上:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 信任任何证书,https需设置

我想你可以用这种方法:

id={$id}  商品ID

http://hws.m.taobao.com/cache/wdetail/5.0/?id=45028136433

英雄似剑 2021-12-03 18:55:31

我也遇到这个问题,请求帮助 @
shuyaode

眼眸里的那抹悲凉 2021-12-03 18:47:52

问题解决了吗

彼岸花ソ最美的依靠 2021-12-03 18:44:25

求高手指点!

累赘 2021-12-03 14:06:37

同求高手

瑾兮 2021-12-02 12:39:38

我也遇到这个问题了,原来这样用CURL就可以获取,现在调整CURL各种选项一直没能获取,原来是这样的:

function curl_get_contents($url){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_TIMEOUT, 15);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
	$result = curl_exec($ch);
	curl_close($ch);
	return $result;
 }

有那位高手能挑战一下,怎么才能获取天猫搜索列表页和商品详情页呢?

本王不退位尔等都是臣 2021-12-01 18:24:55
function testCurl($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    $res = curl_exec($ch);
    curl_close($ch);
    return $res;
}

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

加一句,这样就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文