【问题标题】:scraping "View more" button with scrapy用scrapy抓取“查看更多”按钮
【发布时间】:2019-12-08 11:03:09
【问题描述】:

我正在尝试从该页面https://hipages.com.au/find/electricians/wa/perth 抓取数据,但有一个“查看更多”按钮。而且我不知道使用哪个 url 来获取更多数据。

我检查了页面,打开了网络选项卡,但我找不到使用 Scrapy 抓取所有数据的好方法。

我知道我可以使用 Selenium,但是有超过 200 000 个 url,所以我不能为此使用 Selenium,因为获取所有数据需要数周时间。

【问题讨论】:

    标签: python python-3.x web-scraping scrapy


    【解决方案1】:

    该网站使用 API,因此您可以使用它。 例如:https://hipages.com.au/api/directory/sites?suburb=perth&state=wa&category=8&page=1&perpage=10&code=111d887415230e233b23fdaae8e160d62715d99d7c417a33c1ca27c0b47b3a6ce810db7af2cec77fe5a629d12ad9cc68

    然后你可以操作 url 的查询参数,然后通过 Scrapy 获取数据。

    【讨论】:

    • 我找到了这个,但我不知道如何创建url以及如何从查询字符串参数中获取代码
    • 您可以使用以下方式从 url 获取字符串参数:urlparse.parse_qs(urlparse.urlparse(random_url).query)
    • 这不能解决我的问题,因为我不能创建新的网址
    • 网址只是一个字符串。您可以使用基本字符串格式或使用我提到的 urllib 来构建它。这是两个选项的示例:repl.it/repls/FineValuableGlobalarrays
    • 我有这个网址hipages.com.au/find/electricians/wa/perth,那么如何在页面上找到这个网址hipages.com.au/api/directory/…?
    猜你喜欢
    • 2023-04-04
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-26
    • 1970-01-01
    • 2017-04-16
    相关资源
    最近更新 更多