更改 urllib2 的 IP 地址
Changing the IP address for urllib2
我正在尝试更改我的简单 python 代码连接到我的网站的 IP 地址。
import urllib.request as urllib2
# change of IP address
page = urllib2.urlopen("http://example.com/").read()
是否有 python 库可以轻松启用它?以便连接到站点的用户显示不同的位置。
例如,我想从使用 IP 地址 118.69.140.108 和端口 53281 的站点抓取本地新闻。
怎么做,什么库会启用它?
尝试使用以下代码:
import urllib.request as urllib2
proxy = urllib2.ProxyHandler({"http": "118.69.140.108:53281"})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
page = urllib2.urlopen("http://example.com/")
或者,您可以使用 requests
库,这样更容易:
import requests
url = "http://example.com/"
page = requests.get(url, proxies={"http":"118.69.140.108:53281"})
希望这对您有所帮助
这是一个没有错误处理、重新连接的简单示例。我希望我写的是正确的答案 ;)
import urllib.request as urllib2
http_proxy = {
'user': ''
, 'passwd': ''
, 'server': '67.205.151.211'
, 'port': '3128'
}
# change of IP address
page = urllib2.urlopen("http://httpbin.org/ip").read()
print(page)
# http://username:password@someproxyserver.com:1337
http_proxy_full_auth_string = "http://%s:%s@%s:%s" % (http_proxy["user"],
http_proxy["passwd"],
http_proxy["server"],
http_proxy["port"])
proxy_handler = urllib2.ProxyHandler({"http": http_proxy_full_auth_string,
"https": http_proxy_full_auth_string})
opener = urllib2.build_opener(proxy_handler)
postDatas = {"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0",
"Cache-Control": "no-cache",
"Pragma": "no-cache"}
request = urllib2.Request("http://httpbin.org/ip", None, postDatas)
connection = opener.open(request, timeout=10)
page = connection.read()
# except Exception as err:
# # Si il y a une erreur de connexion (timeout etc.)
# result.add_error(err, "%s ne repond pas" % url)
# else:
connection.close()
print(page)
我正在尝试更改我的简单 python 代码连接到我的网站的 IP 地址。
import urllib.request as urllib2
# change of IP address
page = urllib2.urlopen("http://example.com/").read()
是否有 python 库可以轻松启用它?以便连接到站点的用户显示不同的位置。
例如,我想从使用 IP 地址 118.69.140.108 和端口 53281 的站点抓取本地新闻。
怎么做,什么库会启用它?
尝试使用以下代码:
import urllib.request as urllib2
proxy = urllib2.ProxyHandler({"http": "118.69.140.108:53281"})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
page = urllib2.urlopen("http://example.com/")
或者,您可以使用 requests
库,这样更容易:
import requests
url = "http://example.com/"
page = requests.get(url, proxies={"http":"118.69.140.108:53281"})
希望这对您有所帮助
这是一个没有错误处理、重新连接的简单示例。我希望我写的是正确的答案 ;)
import urllib.request as urllib2
http_proxy = {
'user': ''
, 'passwd': ''
, 'server': '67.205.151.211'
, 'port': '3128'
}
# change of IP address
page = urllib2.urlopen("http://httpbin.org/ip").read()
print(page)
# http://username:password@someproxyserver.com:1337
http_proxy_full_auth_string = "http://%s:%s@%s:%s" % (http_proxy["user"],
http_proxy["passwd"],
http_proxy["server"],
http_proxy["port"])
proxy_handler = urllib2.ProxyHandler({"http": http_proxy_full_auth_string,
"https": http_proxy_full_auth_string})
opener = urllib2.build_opener(proxy_handler)
postDatas = {"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0",
"Cache-Control": "no-cache",
"Pragma": "no-cache"}
request = urllib2.Request("http://httpbin.org/ip", None, postDatas)
connection = opener.open(request, timeout=10)
page = connection.read()
# except Exception as err:
# # Si il y a une erreur de connexion (timeout etc.)
# result.add_error(err, "%s ne repond pas" % url)
# else:
connection.close()
print(page)