小弟被这个问题折腾几天了,实在搞不定啊。恳求大神出马了。
网站:https://www.glprop.com.cn/net...
我要获取这个网站里面的物流地址信息情况。
可以直接通过查看源代码,发现内容都在xpath规则('//*[@id="shadow"]/script[5]/text()')
里面
如下部分网页源码展示
<script>
var cities = [{"id":"312","name":"\u6606\u660e","name_en":"Kunming","lat":"25.04","lng":"102.73","lat_baidu":null,"lng_baidu":null},{"id":"313","name":"\u8d35\u9633","name_en":"Guiyang","lat":"106.639167","lng":"26.652807","lat_baidu":null,"lng_baidu":null},{"id":"314","name":"\u5357\u660c","name_en":"Nanchang","lat":"115.864872","lng":"28.690469","lat_baidu":null,"lng_baidu":null},{"id":"315","name":"\u77f3\u5bb6\u5e84","name_en":"Shijiazhuang","lat":"114.517217","lng":"38.049221","lat_baidu":null,"lng_baidu":null},{"id":"316","name":"\u5927\u592a\u539f","name_en":"Greater Taiyuan","lat":"112.557258","lng":"37.878357","lat_baidu":null,"lng_baidu":null},
</script>
里面有大量变量,,我其实只要获取var cities
里面的内容,因为这里面是json格式,然后想json.loads()
转成json格式。
不知道如何获取这些数据然后转换,很奇怪,既然我网页源代码可以看到这些数据,我在scrapy shell里面始用response.xpath('//*[@id="shadow"]/script[5]/text()')
得到的确实空列表,按理说源代码里面可以看到的就不应该是动态ajax的啊。
这种要用正则匹配了吧。
记得处理异常。