我一直在网上搜索,但没有发现任何有用的东西。我需要自动从供应商网站更新我的产品价格。我想立刻从所有产品的类别页面中获取信息。
我使用简单的html dom方法来获取数据。当我使用标签来检索我从firefox firebug扩展程序获得的价格时,它什么都没打印。我尝试打印该类别页面中的所有链接,其中没有产品链接。当我通过右键单击页面查看网站的源代码时,我看到没有与产品相关的代码。 div是空的,如;
<div class=coll-2 fleft> </div>
但它在firebug扩展中充满了代码。然后我看到一个js文件有这个代码;
function GetProductListHeader() {
var startPage = GetStartPage();
if (pageName == 'kategori' || pageName == 'reyon') {
var BrandList = GetQueryStringByName("Brand");
var ColorList = GetQueryStringByName("Color");
var PropList = GetQueryStringByName("propid");
var ItemDim1CodeList = GetQueryStringByName("vcode");
var QPrice = GetQueryStringByName("price");
var cFilter = GetQueryStringByName("cfilter");
var parametre = { PageName: pageName, pUrl: PageUrl, BrandList: BrandList, ColorList: ColorList, ItemDim1CodeList: ItemDim1CodeList, PropList: PropList, QPrice: QPrice, cFilter: cFilter, startPage: startPage };
$.ajax(
{
url: '/WS/wsProduct.asmx/GetProductListHeader',
type: 'POST',
processData: false,
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(parametre),
dataType: 'json',
async: true
})
.done(function (e) {
if (e.d != "") {
$('.coll-2').html(e.d);
GetProductList(startPage);
}
})
}
}
有没有办法用php获取这个数据?
谢谢。
编辑:我尝试在从chrome网络获取卷曲代码后设置卷曲代码,我使用下面的脚本;
$html = 'curl "http://bebekbayi.com/WS/wsProduct.asmx/GetProductList" \
-H "Cookie: ASP.NET_SessionId=wy5hyt1bujcrdka2hpbp2wnm; _gat=1; _ga=GA1.2.1204447549.1447830812" \
-H "Origin: http://bebekbayi.com" \
-H "Accept-Encoding: gzip, deflate" \
-H "Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4" \
-H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" \
-H "Content-Type: application/json; charset=UTF-8" \
-H "Accept: application/json, text/javascript, */*; q=0.01" \
-H "Cache-Control: max-age=0" \
-H "X-Requested-With: XMLHttpRequest" \
-H "Connection: keep-alive" \
-H "Referer: http://bebekbayi.com/kategori/bakim-cantalari"
--data-binary "{""PageName"":""kategori"",""pUrl"":""bakim-cantalari"",""pIndex"":1,""BrandList"":"""",""ColorList"":"""",""ItemDim1CodeList"":"""",""PropList"":"""",""QPrice"":"""",""cFilter"":""""}" --compressed';
exec($html,$result);
foreach($result as $res){
echo $res . '<br>';
}
它回来了; [InvalidOperationException:对于意外以'/ GetProductList'结尾的URL无法识别请求格式。]
答案 0 :(得分:2)
我认为您直接获取数据源的任务变得更加容易。
您可以做的是获取Web服务的完整URL并进行PHP CURL调用。
因此,您将获得响应,通常它将在XML中,但它将取决于如何编写此Web服务。
这是代码。
body {
background: white;
max-width: 320px;
min-height: 100%;
margin: auto;
}