【问题标题】:How do I scrape content from a dynamically generated page using selenium and python?如何使用 selenium 和 python 从动态生成的页面中抓取内容?
【发布时间】:2023-03-13 08:26:01
【问题描述】:

我尝试了很多次,但都未能以可靠和完整的方式记录我需要的数据。我了解 python 和 selenium 用于自动化简单任务的极端基础知识,但在这种情况下,内容是动态生成的,我无法找到正确的方法来访问并随后记录我需要的所有数据。

我要从中抓取内容的 URL 的结构类似于以下内容:

https://dutchie.com/embedded-menu/revolutionary-clinics-somerville/menu

特别是我正在尝试使用类似的东西来获取所有信息 -

browser.find_elements_by_xpath('//*[@id="products-container"]

这是正确的方法吗?如何访问该元素的特定子元素(以及同一路径的所有元素)

我读到我可能需要 beautifulsoup4,但我不确定解决这个问题的最佳方法。

最好的方法是使用 xpaths 吗?如果是这样,有没有办法遍历所有元素并记录其中的所有数据,还是我必须指定我所追求的每个数据点?

任何能指引我正确方向的帮助都会非常有帮助,因为我仍在学习并且在我的进步中遇到了障碍。

我的最终目标是列出所有产品名称、价格和我根据手头的具体练习认为相关的任何其他数据点。如果我能找到访问数据点的正确方法,我就可以存储它们并根据需要比较/报告它们。

谢谢!

【问题讨论】:

  • 这是一个很好的开始。我迷失了如何在我的示例中选择某些元素,如果我所追求的文本包含在具有“product-information__Title-sc-65h5ke-4 eBIyJW”类的 DIV 中,我将如何处理这个假设文本例如,最后会发生变化吗?
  • 这是一个不同的问题,应该单独提出。通常定位器应该是唯一的。

标签: python selenium web-scraping


【解决方案1】:

我认为您正在寻找类似的东西

browser.find_elements_by_css_selector('[class*="product-information__Title"]')

这应该找到类以该字符串开头的所有元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-28
    • 2014-06-11
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 2016-09-15
    • 2021-06-25
    • 1970-01-01
    相关资源
    最近更新 更多