【问题标题】:Value doesn't show up when retrieved using requests.get使用 requests.get 检索时值不显示
【发布时间】:2018-10-25 16:59:23
【问题描述】:

我正在使用 Python 为它的 html 抓取零售商网站。我在他们的空调产品上寻找数据和属性,例如能源效率、常量或变量类型等。因此,我使用了 requests.get(),然后我计划使用正则表达式或 bs4 过滤数据。

file_number = 0
for portal in portals:
   item = requests.get(portal)
   item_text = str(item.text)
   file_number += 1
   file_name = "blah" + file_number.zfill(4) + ".txt"
   file = open(file_name,"w",encoding="utf8") 
   file.write(item_text)
   file.close()

我可以从我编译的 set() 中检索所有 html 页面。但是,缺少产品价格。如果我转到该页面并直接右键单击->检查,则会出现这条信息。

以下示例只是差异的一个实例。这两个文件是相同的,只是省略了所有对价格的引用(只是一个疯狂的猜测:根据购物者的不同,价格可能会略有不同,这就是为什么以某种方式分开存储的原因。)

也很高兴听到任何关于代码改进的建议,我是 python 的新手!

requests.get() 版本的信息

<div class="p-price">
<strong class="J-p-32965125681"></strong> <span>X <span class="J-buy-num"></span></span>
</div>

对比 右键单击 --> 检查信息版本

<div class="p-price">
<strong class="J-p-32965125681">¥3499.00</strong> <span>X <span class="J-buy-num"></span></span>
</div>

非常感谢!

顺便说一句,免责声明 robots.txt 说: 用户代理: * 不允许: /?* 而且我没有抓取任何带有“?”的页面。在他们的网址中...

【问题讨论】:

    标签: python-3.x web-scraping


    【解决方案1】:

    网页抓取很棘手!

    乍一看,这些值似乎是通过 javascript 添加的。在这种情况下,您需要在页面完成加载后使用无头浏览器或扩展程序来报废 DOM,而不是网站上的骨架 html 页面。

    【讨论】:

    • 谢谢alx! DOM 代表什么?
    猜你喜欢
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2020-03-18
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多