抓取 google 购物时得到不同的结果
Getting different results when scraping google shopping
您好,我正在使用 php 抓取 google 购物结果(使用 curl 和简单的 html dom 库)。
一切都很好,我得到了我国家商店的结果,
然后我将代码上传到 google 云(google 应用引擎),抓取的结果变得不同(不在我的国家/地区的商店),就好像结果是从另一个 google domine(另一个国家)
这是我用的link https://www.google.com.sa/search?q=coffee&safe=images&tbm=shop
我尝试编辑 hl,gl 但没有用。
有人说要更改 http header 'accepted-language' 但那也没用
所以我的问题是,当我 运行 来自 google 云
的代码时,如何获得相同的结果
查看对 Google 购物的支持,根据 this link 似乎不再支持此功能。
您可以尝试在离您所在位置较近的区域使用 App Engine 创建一个不同的项目。您可以找到位置列表 here.
希望你觉得这有用。
您也可以尝试传递 uule
参数,这是加密的 Google 位置参数。
例如w+CAIQICIaQXVzdGluLFRleGFzLFVuaXRlZCBTdGF0ZXM
(美国德克萨斯州奥斯汀)
您可以在这里阅读更多相关信息:https://blog.linkody.com/seo-local/uule-2
或者,您可以使用第三方解决方案,如 SerpApi。这是付费 API 免费试用版。
示例 php 代码(也可在其他库中使用):
require 'path/to/google_search_results';
$query = [
"api_key" => "secret_api_key",
"engine" => "google",
"q" => "coffee",
"location" => "Austin, Texas, United States",
"google_domain" => "google.com",
"gl" => "us",
"hl" => "en",
"tbm" => "shop"
];
$search = new GoogleSearch();
$results = $search->json($query);
示例 JSON 输出:
"inline_shopping_results": [
{
"position": 1,
"block_position": "top",
"title": "Hazelnut & French Vanilla Bundle (30% Off) 12 oz Beans",
"price": ".95",
"extracted_price": 47.95,
"link": "https://www.google.com/aclk?sa=l&ai=DChcSEwjO8tWjiabxAhUDU3IKHUrrC5cYABAEGgJxdQ&sig=AOD64_3Ui55ttgZqIqcfG24uwghjpEXZ3w&ctype=5&q=&ved=0ahUKEwjI49CjiabxAhUCVc0KHbKhD-4Qww8I9Qo&adurl=",
"source": "lifeboostcoffee.com",
"shipping": "Free shipping",
"thumbnail": "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:ANd9GcQNspCBgGMVst_bukmSUPgfCrhshOZOkMMFaIVsJjlcr6P5RR7QfwcGiLzBc1jiKq_LzbgwhM2ZSjqc9p3Tr4h1KjgMbTccri-v6uIXamyMCjrMONPdN0DWyg&usqp=CAE"
},
...
],
"shopping_results": [
{
"position": 1,
"title": "Black Rifle Coffee Company Freedom Fuel Coffee Roast 12oz. Ground4.01Ground · Dark Roast · Bag",
"link": "https://www.google.com/aclk?sa=L&ai=DChcSEwjO8tWjiabxAhUDU3IKHUrrC5cYABA2GgJxdQ&sig=AOD64_2h8ptBTClONQYS9yOHV7RdLQjwbw&ctype=5&q=&ved=0ahUKEwjI49CjiabxAhUCVc0KHbKhD-4Qg-UECN8L&adurl=",
"product_link": "https://google.com/shopping/product/18134019833504388210",
"product_id": "18134019833504388210",
"serpapi_product_api": "https://serpapi.com/search.json?device=desktop&engine=google_product&gl=us&google_domain=google.com&hl=en&location=Austin%2C+Texas%2C+United+States&product_id=18134019833504388210",
"source": "Black Rifle Coffee Company",
"price": ".99",
"extracted_price": 13.99,
"rating": 4,
"reviews": 1,
"snippet": "Ground · Dark Roast · Bag",
"thumbnail": "https://serpapi.com/searches/60cf21bbea1442598e2972d1/images/c54459381b000cca098e49139db83d19bde8b72d3bef4a5544e7fad26ff7169d.webp"
},
...
]
查看 documentation 了解更多详情。
免责声明:我在 SerpApi 工作。
您好,我正在使用 php 抓取 google 购物结果(使用 curl 和简单的 html dom 库)。 一切都很好,我得到了我国家商店的结果, 然后我将代码上传到 google 云(google 应用引擎),抓取的结果变得不同(不在我的国家/地区的商店),就好像结果是从另一个 google domine(另一个国家)
这是我用的link https://www.google.com.sa/search?q=coffee&safe=images&tbm=shop 我尝试编辑 hl,gl 但没有用。
有人说要更改 http header 'accepted-language' 但那也没用
所以我的问题是,当我 运行 来自 google 云
的代码时,如何获得相同的结果查看对 Google 购物的支持,根据 this link 似乎不再支持此功能。
您可以尝试在离您所在位置较近的区域使用 App Engine 创建一个不同的项目。您可以找到位置列表 here.
希望你觉得这有用。
您也可以尝试传递 uule
参数,这是加密的 Google 位置参数。
例如w+CAIQICIaQXVzdGluLFRleGFzLFVuaXRlZCBTdGF0ZXM
(美国德克萨斯州奥斯汀)
您可以在这里阅读更多相关信息:https://blog.linkody.com/seo-local/uule-2
或者,您可以使用第三方解决方案,如 SerpApi。这是付费 API 免费试用版。
示例 php 代码(也可在其他库中使用):
require 'path/to/google_search_results';
$query = [
"api_key" => "secret_api_key",
"engine" => "google",
"q" => "coffee",
"location" => "Austin, Texas, United States",
"google_domain" => "google.com",
"gl" => "us",
"hl" => "en",
"tbm" => "shop"
];
$search = new GoogleSearch();
$results = $search->json($query);
示例 JSON 输出:
"inline_shopping_results": [
{
"position": 1,
"block_position": "top",
"title": "Hazelnut & French Vanilla Bundle (30% Off) 12 oz Beans",
"price": ".95",
"extracted_price": 47.95,
"link": "https://www.google.com/aclk?sa=l&ai=DChcSEwjO8tWjiabxAhUDU3IKHUrrC5cYABAEGgJxdQ&sig=AOD64_3Ui55ttgZqIqcfG24uwghjpEXZ3w&ctype=5&q=&ved=0ahUKEwjI49CjiabxAhUCVc0KHbKhD-4Qww8I9Qo&adurl=",
"source": "lifeboostcoffee.com",
"shipping": "Free shipping",
"thumbnail": "https://encrypted-tbn1.gstatic.com/shopping?q=tbn:ANd9GcQNspCBgGMVst_bukmSUPgfCrhshOZOkMMFaIVsJjlcr6P5RR7QfwcGiLzBc1jiKq_LzbgwhM2ZSjqc9p3Tr4h1KjgMbTccri-v6uIXamyMCjrMONPdN0DWyg&usqp=CAE"
},
...
],
"shopping_results": [
{
"position": 1,
"title": "Black Rifle Coffee Company Freedom Fuel Coffee Roast 12oz. Ground4.01Ground · Dark Roast · Bag",
"link": "https://www.google.com/aclk?sa=L&ai=DChcSEwjO8tWjiabxAhUDU3IKHUrrC5cYABA2GgJxdQ&sig=AOD64_2h8ptBTClONQYS9yOHV7RdLQjwbw&ctype=5&q=&ved=0ahUKEwjI49CjiabxAhUCVc0KHbKhD-4Qg-UECN8L&adurl=",
"product_link": "https://google.com/shopping/product/18134019833504388210",
"product_id": "18134019833504388210",
"serpapi_product_api": "https://serpapi.com/search.json?device=desktop&engine=google_product&gl=us&google_domain=google.com&hl=en&location=Austin%2C+Texas%2C+United+States&product_id=18134019833504388210",
"source": "Black Rifle Coffee Company",
"price": ".99",
"extracted_price": 13.99,
"rating": 4,
"reviews": 1,
"snippet": "Ground · Dark Roast · Bag",
"thumbnail": "https://serpapi.com/searches/60cf21bbea1442598e2972d1/images/c54459381b000cca098e49139db83d19bde8b72d3bef4a5544e7fad26ff7169d.webp"
},
...
]
查看 documentation 了解更多详情。
免责声明:我在 SerpApi 工作。