在另一个国家使用网络刮刀



我有许多我写的网络刮板,这些刮板正在搜索一个特定国家网站,例如eBay.co.uk,它们正在操纵URL以获得特定的结果。为此,我正在使用Python 3和请求模块。

当我在英国使用它们时,这些工作正常,我现在正在尝试在另一个国家(西班牙(运行这些,它们不再工作。

如果我直接在Web浏览器中使用相同的URL,则页面URL会像以前一样加载。现在我在一个不同的国家/地区,我需要使用代理使用请求访问相同的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上,一切似乎都很好。Broswer中的两个URLSARE都很好,所以我不确定为什么URL1不会产生预期的结果。

如果您询问如何使用requests使用代理,则可以制作字典并在proxies参数中传递,例如:

proxy = 'http://127.0.0.1:8000'  ## protocol :// host : port ##
res = requests.get(URL2, proxies={ 'http' : proxy })

相关内容

最新更新