使用requests.get从商店网站查找简单的产品信息

2024-09-25 10:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个简单的程序,让用户同时在三个流行的杂货店网站上搜索产品,即Meijer、Aldi和Walmart。当我尝试在meijer站点上运行请求时,如下面所示,我会收到一条连接错误消息以及多行异常(注释中的完整示例)

search_query = input("Search for:\t")
meijer_params = {"text": search_query}
request_meijer = requests.get("https://www.meijer.com/shop/en/search/", params = meijer_params )
print(request_meijer.url)

我在获取来自Aldis的请求进行处理时也遇到了问题,使用下面的方法,搜索查询的定义如前所述

request_aldi = requests.get("https://shop.aldi.us/store/aldi/search_v3/" + search_query)
print(request_aldi.url)

我尝试使用str(search_query)来确保search_query正确地进行了类型转换,但没有效果。我还尝试创建搜索字符串所需的URL,将该字符串与search_query连接起来,例如:

aldi_url = "https://shop.aldi.us/store/aldi/search_v3/" + search_query

aldi_url = "https://shop.aldi.us/store/aldi/search_v3/" + str(search_query)

然而,这些措施也不起作用

任何关于我如何正确申请这些网站的建议都将不胜感激。最终目标是使用BeautifulSoup解析数据,并提取查询项目的容器大小和价格等信息


Tags: storehttpsurlsearchget网站requestv3
1条回答
网友
1楼 · 发布于 2024-09-25 10:31:58

要在这些情况下获取正确的页面和/或不获取连接超时,请使用User-AgentHTTTP头

例如:

import requests


headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0'}

search_query = 'bottle'
meijer_params = {"text": 'bottle'}
request_meijer = requests.get("https://www.meijer.com/shop/en/search/", params=meijer_params, headers=headers)
print(request_meijer.url)

request_aldi = requests.get("https://shop.aldi.us/store/aldi/search_v3/" + search_query, headers=headers)
print(request_aldi.url)

印刷品:

https://www.meijer.com/shop/en/search/?text=bottle
https://shop.aldi.us

相关问题 更多 >