我正在尝试从Insight.com抓取定价数据。这是example page。
从该页面,我要拉ListPrice。我之前已经通过请求和BeautifulSoup做到了这一点,但是在那些情况下,价格直接在HTML中,因此很容易退出。但是,Insight似乎正在从“ webProduct.prices [0] .price”获取此价格数据,我认为这是一个javascript对象。
这是确切的HTML元素:
<p class="ips-price-contract">List price</p><p class="prod-price">{{- webProduct.prices[0].currency }} {{= numeral(webProduct.prices[0].price).format(InsightUtil.GetCurrencyFormat()) }}</p>
有没有办法我仍然可以使用Python获得此定价数据?
编辑:下面的解决方案
多亏了下面的HarunErgül解决方案,我才能够使它正常工作。首先,我使用应用程序邮递员将帖子发布到那里。这是完成的帖子的样子:
要将JSON有效负载转换为python,我首先将其格式化为python dict(例如,将“ null”替换为“ None”,“ true”和“ false”替换为“ True”和“ False”等),然后将请求与data = json.dumps(data)
最佳答案
该网站对价格提出了额外要求。您应该执行相同的请求。您可以在chrome network xhr标签下找到该请求。
不要使用硒类型的解决方案,因为要花费大量时间来抓取大量数据。
关于javascript - 未硬编码到HTML中的Python Web抓取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42840685/