用Python解析HTML-有些页面可以工作,有些不能…?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用Python解析HTML-有些页面可以工作,有些不能…?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1161字,纯文字阅读大概需要2分钟。
内容图文
![用Python解析HTML-有些页面可以工作,有些不能…?](/upload/InfoBanner/zyjiaocheng/664/35db364decd145eabe87162eb5299e61.jpg)
使用以下脚本:
from lxml import html
import requests
gameUrl = 'http://store.401games.ca/catalog/2415520/caylus'
page = requests.get(gameUrl)
tree = html.fromstring(page.content)
stock = tree.xpath('//*[@id="stock"]/span[1]/div/*/text()')[0]
print stock
它将正确显示页面上列出的库存水平. (目前为1个)
gameUrl = 'http://store.401games.ca/catalog/2415324/ticket-to-ride'
它显示库存为68,这是不正确的. (我不知道68到底是哪里来的).
我尝试了此站点中的很多页面,并使用此脚本正常运行了90%.但是其他10%失败并给出随机数…有些完全不同,例如68而不是30.或者1100而不是30.有些则更接近,例如12而不是9.我不知道发生了什么.
有谁知道可能是什么问题?
解决方法:
如果要在浏览器中打开页面,则在更改为“数量:30”之前,“数量:68”将闪烁.
最初,我认为存在一个XHR请求,该请求会在页面加载后几乎从某个端点动态获取产品可用性,并且几乎开始提供有关浏览器自动化的常见答案,但是这里的问题有所不同.
如果要在浏览器开发人员工具中打开“网络”选项卡,则可能会看到store.js javascript文件正在加载.在脚本的开头,您可以看到:
if(stock>30) { $('div.availability span').text( "30" ); }
var instock = $('div.availability').text();
instock = instock.replace("In-Stock", "Quantity");
这意味着,如果数量大于30,则将其“手动”设置为30.
内容总结
以上是互联网集市为您收集整理的用Python解析HTML-有些页面可以工作,有些不能…?全部内容,希望文章能够帮你解决用Python解析HTML-有些页面可以工作,有些不能…?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。