请问如何使用js或者php,获取js部分生成的代码。
如:要获取淘宝宝贝的详情,这部分是js生成的相应内容,请问用php或者js代码如何去或者之?
分析淘宝的页面后得出的结论.
1.在查看 商品的页面(就是有宝贝详情的页面),查看源代码找到
复制内容到剪贴板代码:
apiItemDesc
它后面的值,就是当前这个宝贝详情的内容的URL地址.
2.取这个URL地址内容就可以得到 宝贝详情 的内容了.
举个例子:
比如这个商品
http://item.taobao.com/auction/item_detail-0db2-bad41e9b0823867be42a21c1e8dea721.htm?cm_cat=50018911&source=dou
查看源代码找到 apiItemDesc
它的值是
引用:
http://dsc07.taobao.com/i7/ba1/411/bad41e9b0823867be42a21c1e8dea721/T1XmRmXftfXXXXXXXX.desc|var^desc;sign^d9ca5a880b0586b99a1b9ffbd49a1ff4;lang^gbk;t^1255879405
再取一次这个URL地址的内容,就是该 商品的 宝贝详情了.
并附一个获取上面数据的例子.文件保存为 hta 类型的文件.(比如 taobao.hta)
<script type="text/javascript">
//<![CDATA[
function getData(url, callBack){
var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
xmlhttp.open('GET', url, true);
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && (xmlhttp.status == 200 || xmlhttp.status == 0))callBack(xmlhttp);
}
xmlhttp.send();
}
function BytesToBstr(body, Cset){//编码转换
var objstream = new ActiveXObject("adodb.stream");
objstream.Type = 1;
objstream.Mode =3;
objstream.Open();
objstream.Write(body);
objstream.Position = 0;
objstream.Type = 2;
objstream.Charset = Cset;
return(objstream.ReadText);
}
getData('http://item.taobao.com/auction/item_detail-0db2-bad41e9b0823867be42a21c1e8dea721.htm?cm_cat=50018911&source=dou', function(x){
var url = /"apiItemDesc":"(.+?)"/ig.exec(x.responseText)[1];//取URL地址
getData(url, function(data){
eval(BytesToBstr(data.responseBody, 'gb2312'));
document.write(desc);
});
});
//]]>
</script>
PS:第一次请求的时候,因为页面的编码是 utf-8的,所以不用转码,就可以直接使用.
而第二次请求 宝贝详情的内容的时候,返回的内容是gb2312的.所以,如果要想正确显示,需要以gb2312编码读出来数据.
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |