首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改urllib2的IP地址

更改urllib2的IP地址
EN

Stack Overflow用户
提问于 2019-05-04 01:29:15
回答 2查看 1.6K关注 0票数 0

我正在尝试更改我的简单python代码连接到我的网站的IP地址。

代码语言:javascript
复制
import urllib.request  as urllib2
# change of IP address
page = urllib2.urlopen("http://example.com/").read()

有没有一个python库可以很容易地启用它?以便连接到该站点的用户显示不同的位置。

例如,我希望使用IP地址: 118.69.140.108和端口53281从站点抓取本地新闻。

如何做到这一点,什么库会启用它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-04 01:33:32

尝试使用以下代码:

代码语言:javascript
复制
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库,这样可以更轻松地执行以下操作:

代码语言:javascript
复制
import requests

url = "http://example.com/"
page = requests.get(url, proxies={"http":"118.69.140.108:53281"})

希望这能有所帮助

票数 3
EN

Stack Overflow用户

发布于 2019-05-04 01:58:54

这是一个简单的例子,没有错误处理,重新连接。我希望我写的答案是正确的;)

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55974628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档