【问题标题】:How to scrape information about a specific product using search bar如何使用搜索栏抓取有关特定产品的信息
【发布时间】:2020-05-12 12:27:12
【问题描述】:

我正在创建一个系统 - 主要是在 Python 和 Scrapy 中 - 我基本上可以在其中找到有关特定产品的信息。但问题是请求 URL 非常巨大,我得到一个线索,我应该使用变量更改其中的某些部分以到达我想要搜索的特定产品,但是 URL 有很多我不知道的字段不知道怎么做。

例如:“https://www.amazon.com.br/s?k=demi+lovato+365+dias+do+ano&adgrpid=86887777368&hvadid=392971063429&hvdev=c&hvlocphy=9047761&hvnetw=g&hvpos =1t1&hvqmt=e&hvrand=11390662277799676774&hvtargid=kwd-597187395757&hydadcr=5658_10696978&tag=hydrbrgk-20&ref=pd_sl_21pelgocuh_e%2Frobot.txt"

demi+lovato+365+dias+do+ano”是书名,但是我可以看到很多关于URL的信息,我根本无法提供,当然,它从标题到标题的变化。我认为可能的一个解决方案是在搜索栏上发布我正在寻找的标题并在结果页面上找到它,但我不知道这是否是最好的方法,因为事实上,这是我第一次正在使用网络抓取。

有人对我如何做到这一点有一些提示。我所能找到的只是如何抓取所有产品以进行价格比较,抓取有关所有这些产品的特定信息以及类似的东西,但对于搜索特定产品一无所知。

感谢您的任何贡献,这对我来说非常重要,对任何事情感到抱歉,我不是一个非常活跃的用户,也不是英语母语人士。

请随时向我提出有关用户行为的任何建议,变得更好始终是我的目标。

【问题讨论】:

    标签: python web-scraping scrapy


    【解决方案1】:

    你应该使用在 scrapy 框架中可用的rule。这将帮助您定义如何浏览站点及其子站点。此外,您可以配置除锚标签以外的其他标签(如 span 或 div)来查找链接的 url。通过这种方式,链接中的其他查询参数将由 scrapy 会话填充,因为它模拟点击超链接。如果您跳过 URL 中的其他查询参数,您很有可能会被阻止

    How does scrapy use rules?

    【讨论】:

      【解决方案2】:

      您根本不需要关注那个长链接,通常不同的参数与您当前的会话或设置/过滤器相关联,您可以只保留您需要的。

      这就是我的意思:

      您可以使用这 2 个网址生成相同的结果:

      https://www.amazon.com.br/s?k=demi+lovato+365+dias+do+ano

      https://www.amazon.com.br/s?k=demi+lovato+365+dias+do+ano&adgrpid=86887777368&hvadid=392971063429&hvdev=c&hvlocphy=9047761&hvnetw=g&hvpos=1t1&hvqmt=e&hvrand=11390662277799676774&hvtargid=kwd-597187395757&hydadcr=5658_10696978&tag=hydrbrgk-20&ref=pd_sl_21pelgocuh_e%2Frobot.txt

      如果两个链接都生成相同的结果,那么就是这样,否则您肯定必须使用不同的参数,如果没有实际进行测试,您将无法预测网站行为,并且有很多参数是一个问题,然后尝试类似:

      from urllib.parse import quote_plus
      
      base_url = "https://www.amazon.com.br"
      link = base_url + "/k=%s&adgrpid=%s&hvadid=%s" % ( quote_plus(title), '86887777368', '392971063429' )
      

      【讨论】:

        猜你喜欢
        • 2022-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多