淘宝用的是怎么的技术,防止被采集的?如何用php采集淘宝的数据呢?

发布于 2022-09-01 15:53:42 字数 309 浏览 22 评论 0

最近做个小程序,需要采集淘宝搜索页的结果,因为API的效果不一样的,所以要采集。
但是弄了好久都没能采集下来。
有大神有空可以帮小弟试试吗?
万分感激。

链接样式: https://list.tmall.com/search_product.htm?q=%D1%A9%B7%C4%C9%C0&cli...

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

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

发布评论

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

评论(8

來不及說愛妳 2022-09-08 15:53:42

没用什么,完全模拟浏览器curl即可。可能用了cookies和user-agent什么的识别。
效果图:
图片描述

若无效自行将cookies换成新的。

<?php 
header("content-type:text/html;charset=gbk");
$curl = curl_init('http://list.tmall.com/search_product.htm?q=%D1%A9%B7%C4%C9%C0&click_id=%D1%A9%B7%C4%C9%C0');
$header = array();
$header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
$header[] = 'Accept-Encoding: gzip, deflate, sdch';
$header[] = 'Accept-Language: zh-CN,zh;q=0.8';
$header[] = 'Cache-Control: max-age=0';
$header[] = 'Connection: keep-alive';
$header[] = 'Cookie: uc3=nk2=0M56YNYN%2BA4%3D&id2=W8rr4uUwfV5Z&vt3=F8dAT%2B%2BMdeVt9sjBn%2Bk%3D&lg2=WqG3DMC9VAQiUQ%3D%3D; lgc=%5Cu695A%5Cu5929%5Cu5B9D%5Cu9676; tracknick=%5Cu695A%5Cu5929%5Cu5B9D%5Cu9676; t=45643498fa8ff940a0534abf468c496b; _tb_token_=5touPdVYykOo; cookie2=9cc3ace3ba141f7e0e950da7b4782eae; tt=segmentfault.com; res=scroll%3A1349*6222-client%3A1349*667-offset%3A1349*6222-screen%3A1366*768; pnm_cku822=055UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5Ockt1T3BEf0N%2BSnJPciQ%3D%7CU2xMHDJ7G2AHYg8hAS8WKQcnCVU0Uj5ZJ11zJXM%3D%7CVGhXd1llXGJYZ1NoVGldZVhlUm9NeEd9SHFFfElyR35Be0N%2FR2k%2F%7CVWldfS0TMwY8ACAcKQkncVU4XSNKGn9AZE8BUDxQCW4PIXch%7CVmhIGCUFOBgkGiMXNwwzDDMTLxEqETELMAUlGSccJwc9AjdhNw%3D%3D%7CV25Tbk5zU2xMcEl1VWtTaUlwJg%3D%3D; cq=ccp%3D1; l=AikpB1ewOIvOADHsO87Aa9qtuduD9B0s; otherx=e%3D1%26p%3D*%26s%3D0%26c%3D0%26f%3D0%26g%3D0%26t%3D0; swfstore=142738; isg=4C03295B995DB1CB7ADB1CC702592A48';
$header[] = 'Connection: keep-alive';
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
// 不输出header头信息
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
// 伪装浏览器
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36');
// 保存到字符串而不是输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$rs = curl_exec($curl);
curl_close($curl);
echo $rs;
尬尬 2022-09-08 15:53:42

搜一下selenium

被翻牌 2022-09-08 15:53:42

谢邀。

不过这个貌似我都没研究过,没什么发言权。

平时采集东西还是用Scrapy 或者 pyspider

拥抱没勇气 2022-09-08 15:53:42

淘宝不断优化反PHP采集的技术防止采集。采集淘宝的时候必须不断优化破解反PHP采集的技术达到采集目的

梦里泪两行 2022-09-08 15:53:42

利用curl模拟头信息,模拟来路和IP不断的去采集,去年采集过淘宝一年数据

淘宝很多数据都已经必须要求登录后才能采集了

那片花海 2022-09-08 15:53:42

由于该网站的robots.txt文件存在限制指令,系统无法提供该页面的内容描述

防君子不防小人的感觉。
模拟采集的话,curl应该没太大问题,注意频率或者换IP就好了。

柒夜笙歌凉 2022-09-08 15:53:42

很多东西(比如ajax加载的)后端的程序是无法直接采集的,即使调整程序,使用起来也比较费劲。
那么,你可以模拟浏览器去访问,只要浏览器能访问到的,你模拟的浏览器都能访问得到。
PhantomJS (casperjs 框架) 看看这个吧,能简单模拟浏览器访问,要抓的数据都能抓得到。

中性美 2022-09-08 15:53:42

python 下用什么工具采集taobao?

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