在其他国家/地区使用Web Scrapers

时间:2017-04-17 05:10:42

标签: python web-scraping python-requests

我有一些网络搜索工具,我写的是搜索国家特定网站,如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没有产生预期的结果。

1 个答案:

答案 0 :(得分:1)

如果您正在询问如何使用requests代理,您可以创建一个字典并将其传递给proxies参数,例如:

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