【问题标题】:Using urllib.request returns Proxy Auto-Config file使用 urllib.request 返回代理自动配置文件
【发布时间】:2018-12-17 02:46:15
【问题描述】:

我正在使用来自 here 的 Martin Konecny 的代码从我的公司防火墙后面查询一个 http 站点:

代码是这样的:

    import urllib.request
req = urllib.request.Request(
    'http://www.espncricinfo.com/', 
    data=None, 
    headers={
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)

f = urllib.request.urlopen(req)
g = open('writing.txt','w')
g.write(f.read().decode('utf-8'))
g.close

但是,一旦我运行此代码,我会收到 PAC 文件,而不是 url 的内容。

我如何通过它来下载给定 url 的网站内容?

谢谢!

【问题讨论】:

  • 你到底想下载什么??使用 g.write(f.read().decode('utf-8')) 您将完整的响应正文写入 writing.txt 文件
  • @ergesto 我收到的是 PAC 文件作为响应,而不是 URL 的内容。请注意,我在公司防火墙后面操作。
  • 你使用代理吗?
  • 是的。我在代理后面。
  • 你可以使用ProxyHandler

标签: python urllib pac


【解决方案1】:
import urllib.request

req = urllib.request.Request('http://www.espncricinfo.com/', data=None, headers={
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
    }
)

proxy_support = urllib.request.ProxyHandler({'http': 'ip:port'})
opener = urllib.request.build_opener(proxy_support)
# make opener object the global default opener. 
urllib.request.install_opener(opener)


f = urllib.request.urlopen(req)

g = open('writing.txt','w')
g.write(f.read().decode('utf-8'))
g.close

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多