我有一些网络搜索工具,我写的是搜索国家特定网站,如ebay.co.uk,这些网站正在操纵网址以获得具体结果。为此,我使用python 3和请求模块。
当我在英国使用它们时,这些工作正常,我现在正尝试在不同的国家(西班牙)运行这些,但它们不再有效。
如果我直接在网络浏览器中使用相同的网址,则网页网址会像以前一样加载,所以就这样。现在我在不同的国家,我需要使用代理来使用请求访问相同的URL(以前从未使用过代理)?
非常感谢。
编辑:
好的,这仍然部分有效,请参阅代码:
import requests, bs4
# Tesco Outlet
URL1 = "http://www.ebay.co.uk/sch/tesco_outlet/m.html?
_nkw=&_armrs=1&_ipg=&_from="
# Sold Iphones
URL2 = "http://www.ebay.co.uk/sch/i.html?LH_Auction=1&_nkw=iphone&LH_Complete=1&LH_Sold=1&rt=nc&_trksid=p2045573.m1684"
session = requests.Session()
res = requests.get(URL2)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
results = soup.find(class_="rcnt")
print(results)
next_page = soup.find(class_="gspr next")
print(next_page)
mainContainer = soup.find(id="mainContent")
print(mainContainer)
URL1似乎没有带来任何结果,或者找到页面的下一页或主要容器。但是在URL2上似乎一切正常。两个URL在broswer中都很好,所以我不确定为什么URL1没有产生预期的结果。
答案 0 :(得分:1)
如果您正在询问如何使用requests
代理,您可以创建一个字典并将其传递给proxies
参数,例如:
proxy = 'http://127.0.0.1:8000' ## protocol :// host : port ##
res = requests.get(URL2, proxies={ 'http' : proxy })