【问题标题】:Issue scraping ul section of page问题抓取页面的ul部分
【发布时间】:2017-06-14 00:13:59
【问题描述】:

设置

我正在用 scrapy 抓取房屋广告。

我成功地收集了每个广告的大部分房屋特征,然后用 pandas 对其进行分析。


问题

我似乎无法在广告页面上抓取某个 ul。该问题涉及任何住房广告页面上的“主要功能”和“附加功能”部分:例如this one

当我尝试抓取元素时,我收到一个空白返回。


尝试

我尝试了以下方法来获取“附加”

response.css("section.divFeatures") # empty 

response.css("div.detail-section-content::text", # gives me the property location (strange)
          ).extract() 

response.css("#divFeatures").extract() # empty

名单还在继续。

我做错了什么,如何成功获取元素?

【问题讨论】:

  • 那是因为这个数据是通过带有this url的javascript加载的
  • 感谢卡斯帕!只是为了我的理解,您评论中的网址可以被刮掉吗?如果是这样,您是否从某处的页面代码中获取了它?
  • 是的,该网址是可抓取的。我不确定是否有更好的方法来查看数据的来源,但我只是在 Chrome 中打开检查窗口,然后使用“网络”选项卡查看加载了哪些数据。最终,您会找到这样一个页面,其中包含您需要的信息。

标签: python scrapy html-lists screen-scraping


【解决方案1】:

您可以直接查询@Casper 提到的那个页面...或者您可以使用运行 javascript 的引擎并像常规网络浏览器一样为您编辑 DOM,并在编辑后获取 html。

Selenium+ChromeDriver(+XVFB,如果你想无头运行)或 phantomjs 等。它们将运行网页上的所有 javascript,并且与你在 chrome 中打开检查面板时看到的结构完全相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 2018-07-28
    • 2020-12-10
    • 2021-05-08
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多