【问题标题】:Unable to scrape a website with styled-component javascript无法使用样式化组件 javascript 抓取网站
【发布时间】:2020-12-15 10:03:40
【问题描述】:

我的目标

使用 Scrapy 框架从这个page 获取基本信息,但问题并不特定于这个框架。我们以h1节点内的p元素为例。

问题

我根据从 Scrapy 请求中获得的响应所做的所有选择都未能返回 h1 节点内的内容。

scrapy shell 'url'
response
>>> 200
response.xpath('//h1/p')
>>> []
获取响应:

在获取响应时,我看到一个我无法真正理解的结构,所有主要的 html 标记都被压缩并放置在一堆 javascript 样式组件之后。 file is here(1725 法分)。

我的过程

从开发工具测试选择器:

从开发工具中禁用 Javascript 并测试我的选择器后,我得到了想要的结果。例如,我通过控制台的简单查询 //h1/p 获得了 <h1> 内的 <p> 元素。

用 scrapy shell 测试选择器:

不工作,请参阅问题

用 splash 测试选择器:

我得到了与问题中显示的完全相同的结果。

【问题讨论】:

    标签: javascript web-scraping scrapy styled-components


    【解决方案1】:

    我无法解释这个错误,但我希望能为您的问题提供答案

    response.xpath('//*[@class="summary__StyledAddress-e4c4ok-6 zWwUF textIntent-title1"]/text()').get()
    

    返回:'12-14 31st Avenue, Unit 2'

    希望你需要什么?

    P 博士。

    【讨论】:

    • 我尝试了很多技术,包括 Selenium 和 Splash,但都没有成功返回结构化的 html 标记。只有在不引用父节点的情况下优化 xpath 选择器的解决方案才有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2021-03-07
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多