Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 错误403禁止淘宝解析_Php_Parsing_Curl_Web Scraping - Fatal编程技术网

Php 错误403禁止淘宝解析

Php 错误403禁止淘宝解析,php,parsing,curl,web-scraping,Php,Parsing,Curl,Web Scraping,我在尝试解析淘宝 数据是 在浏览器中,数据页正常加载: 但在过渡阶段,我得到了403禁止: 如何使用php克服这一限制 请帮忙,非常需要客户投诉您到底无法解析什么?我对解析产品价格和产品名称没有问题 <?php declare(strict_types = 1); $html = file_get_contents ( 'https://world.taobao.com/item/556926591992.html' ); $domd = @DOMDocument::loadHTML

我在尝试解析淘宝

数据是

在浏览器中,数据页正常加载:

但在过渡阶段,我得到了403禁止:

如何使用php克服这一限制
请帮忙,非常需要客户投诉

您到底无法解析什么?我对解析产品价格和产品名称没有问题

<?php
declare(strict_types = 1);
$html = file_get_contents ( 'https://world.taobao.com/item/556926591992.html' );
$domd = @DOMDocument::loadHTML ( $html );
$xp = new DOMXPath ( $domd );
$name = $xp->query ( '//span[@itemprop="name"]' )->item ( 0 )->textContent;
$price = trim ( preg_replace ( '/\s+/u', ' ', $xp->query ( '//div[contains(@class,"price-show") and not(contains(@class,"hidden"))]' )->item ( 0 )->textContent ) );
var_dump ( $name, $price );

(protip,curl会运行得更快,因为它了解内容长度,而file_get_内容只在套接字关闭之前读取,如果使用CURLOPT_编码,curl将使用更少的带宽,因为这个网站和curl支持gzip压缩传输,而file_get_内容不支持,而curl不支持取决于
allow\u url\u fopen
php.ini设置,该设置是获取内容所需的文件)

detailskip.taobao.com/json/dyn\u combo.do阻止任何没有“推荐人”的请求标题指向另一个detailskip.taobao.com url。请注意,推荐人不必是真实的,你可以伪造它,他们实际上不验证它,标题必须在那里。此外,他们在用户代理标题中用“php”阻止任何请求。他们还阻止任何没有用户代理标题的请求

伪造referer头和用户代理以获取json的示例代码(用作curl_u函数的错误检测包装):


<代码>请考虑添加一些相关的代码,以便我们能更好的帮助!对不起,我不知道英语问了一个问题,因为我不知道在哪里转转,解析器不需要站点本身:<代码>https://world.taobao.com/item/556926591992.html和数据源:
https://detailskip.taobao.com/json/dyn_combo.do
@newProgrammer最有可能在html中生成一个唯一的csrf令牌和一个cookie会话id,您必须下载、解析并提供给-但是,您想要什么数据?折扣已经通过:
https://detailskip.taobao.com/json/dyn_combo.do
为什么会出现错误:警告:Uns第2行/home/n/domen/domen/public_html/hhb_uu.inc.php中支持的声明“strict_types”解析错误:语法错误,意外“:”,应为“{'in/home/n/domen/domen/public_html/hhb_.inc.php在线9@newProgrammer因为这段代码是为PHP7编写的,而您正试图在PHP5中运行它。您真的应该升级,PHP7的TypeHights是一个blessingif运行,PHP7将与其他部分有问题code@newProgrammer这里有一个PHP5版本的hhb_旋涡-但它不应该是困难的ult将其移植到PHP5 curl_uu。无论如何,非常感谢您,您真的帮了我的忙,我支持技术,但是有stackoverflow之类的人
 string(82) "欧美高街bf风潮牌oversize宽松男女嘻哈hiphop套头卫衣情侣装外套"
 string(9) "¥ 189.00"
<?php
declare(strict_types = 1);
header ( "content-type: text/plain;charset=utf8" );
require_once ('hhb_.inc.php');
$json = (new hhb_curl ( '', true ))->setopt_array ( array (
        CURLOPT_URL => 'https://detailskip.taobao.com/json/dyn_combo.do?itemId=556926591992&databiz=promotionPrice,upp,bonuscoupon,shopbonuscoupon,shopbonuscoupon,shopcoupon,sidebarcoupon,overseaNewDelivery,dynStock,overseaViewer,contract,activitySwitch,buycount',
        CURLOPT_USERAGENT => 'curl/7.52.1',
        CURLOPT_HTTPHEADER => array (
                'Referer: https://world.taobao.com/item/556926591992.html' 
        ) 
) )->exec ()->getStdOut();
echo $json;