1

我正在尝试使用Scrapy抓取 Google 购物。

start_urlhttps://www.google.com/search?q={}&tbm=shop

我将关键短语注入上述 URL,例如“ cement+50+kg”。

但我想在不同的国家/地区进行搜索——例如,查找美国的水泥价格。我如何实现这一目标?

我正在手动尝试此操作以查看 URL 是否更改:

  1. 更改高级搜索中的区域 - 添加了搜索查询参数,但搜索结果没有相应更改。
  2. 在搜索设置中更改了搜索国家 - 结果来自国家,但我无法弄清楚 URL 中的查询参数。

此外,我只在很小的范围内完成了这项工作,因此我将非常感谢我在 Google 购物中可能遇到的任何有关阻塞、代码更改等问题的提醒。

使用 Scrapy 是否有任何主要障碍?我应该改用 Selenium 吗?

4

1 回答 1

1

Google 使用uule参数来传递位置数据。它用于将地点或确切位置(带有纬度和经度)编码为 cookie、url 或 http 标头中使用的值。

美国 == w+CAIQICINVW5pdGVkIFN0YXRlcw

您可以在这里阅读更多相关信息:https ://valentin.app/uule.html

还有像 SerpApi 这样的第三方解决方案。这是一个免费试用的付费 API。我们为您处理代理、解决验证码并解析所有丰富的结构化数据。

示例 python 代码(也可在其他库中获得):

from serpapi import GoogleSearch

params = {
  "engine": "google",
  "q": "cement 50 kg",
  "google_domain": "google.com",
  "gl": "us",
  "hl": "en",
  "location": "United States",
  "tbm": "shop",
  "api_key": "secret_api_key"
}

search = GoogleSearch(params)
results = search.get_dict()

示例 JSON 输出:

"shopping_results": [
  {
    "position": 1,
    "title": "Wholesale 50kg cement bag,1 Piece",
    "link": "https://www.google.com/aclk?sa=L&ai=DChcSEwjqsIfOgpjxAhUFbW8EHfIcBvwYABAFGgJqZg&sig=AOD64_2lxrIvhKl-jSkU_uwbVdMtfbIxgA&ctype=5&q=&ved=0ahUKEwjlnYPOgpjxAhUQLKwKHeHWDl8QgeUECIcD&adurl=",
    "source": "Alibaba.com",
    "price": "$0.25",
    "extracted_price": 0.25,
    "snippet": "Trade Assurance, No Shipping Fee | Alibaba.com",
    "thumbnail": "https://serpapi.com/searches/60c7c3ad5119a69d2314814b/images/2d5510b1cc7c1a7a51a1f0d85a2f131f55c541b3ee95bfa73a7e6df83daac97a.jpeg"
  },
  {
    "position": 2,
    "title": "Riverside Plastic 94 Lb/bag Cement",
    "link": "https://www.google.com/aclk?sa=L&ai=DChcSEwjqsIfOgpjxAhUFbW8EHfIcBvwYABAEGgJqZg&sig=AOD64_1UioDhoruBK2KZZM9lpo6EC9DAxA&ctype=5&q=&ved=0ahUKEwjlnYPOgpjxAhUQLKwKHeHWDl8QgeUECJMD&adurl=",
    "source": "WhiteCap.com",
    "price": "$15.89",
    "extracted_price": 15.89,
    "snippet": "Riverside cement plastic cement, 94 lb, bag container, ASTM C1328, for making mortar, plaster and stucco. | Riverside Plastic ...",
    "thumbnail": "https://serpapi.com/searches/60c7c3ad5119a69d2314814b/images/2d5510b1cc7c1a7a51a1f0d85a2f131f981e26eb8236be3e014b2e90eb4fb4e1.jpeg"
  },
  ...
]

查看文档以获取更多详细信息。

免责声明:我在 SerpApi 工作。

于 2021-06-14T21:28:56.017 回答