如何通过代理使用Python访问网页
我正在编写一个小程序,通过提供URL从网页获取所有超链接,但我所在的网络似乎正在使用代理,无法获取。。 我的代码:如何通过代理使用Python访问网页,python,beautifulsoup,urllib,Python,Beautifulsoup,Urllib,我正在编写一个小程序,通过提供URL从网页获取所有超链接,但我所在的网络似乎正在使用代理,无法获取。。 我的代码: 用于HTTP访问的urllib库不支持代理身份验证(它支持未经身份验证的代理)。发件人: 当前不支持需要身份验证才能使用的代理 支持;这被认为是实现限制 我建议您切换到urllib2,并按照中的说明使用它。您用于HTTP访问的urllib库不支持代理身份验证(它支持未经身份验证的代理)。发件人: 当前不支持需要身份验证才能使用的代理 支持;这被认为是实现限制 我建议您切换到urll
用于HTTP访问的
urllib
库不支持代理身份验证(它支持未经身份验证的代理)。发件人:
当前不支持需要身份验证才能使用的代理
支持;这被认为是实现限制
我建议您切换到
urllib2
,并按照中的说明使用它。您用于HTTP访问的urllib
库不支持代理身份验证(它支持未经身份验证的代理)。发件人:
当前不支持需要身份验证才能使用的代理
支持;这被认为是实现限制
我建议您切换到
urllib2
,并按照中的演示使用它。您可以使用请求模块
导入请求
代理={'http':'http://host/' }
#或者如果它需要身份验证'http://user:pass@主机/'
r=requests.get(url,proxies=proxies)
text=r.text
您可以改用请求模块
导入请求
代理={'http':'http://host/' }
#或者如果它需要身份验证'http://user:pass@主机/'
r=requests.get(url,proxies=proxies)
text=r.text
根据您的问题,您的网络可能正在使用代理,也可能没有。你能说得更具体一点,或者只是路过你的管理员问一下吗?是的,它有一个代理,我在家里试过,它工作得很好,但当我把它拿到我的部门向我的老师展示它的工作能力时…这是错误IOError:[Errno socket error][Errno-2]名称或服务未知
这是我用过的代理“proxy4.nehu.ac.in:3128“我如何将其放入程序的代码中…”。。?请帮助我,我被它困住了。好的,我会检查一下,如果我遇到一些问题,我会回来找你。现在我不能测试它,因为我必须在大学自己尝试,因为我没有代理网络来测试。如果你同意的话?你可以自己轻松地设置一个代理。squid很受欢迎。根据您的问题,您的网络可能使用代理服务器,也可能没有。你能说得更具体一点,或者只是路过你的管理员问一下吗?是的,它有一个代理,我在家里试过,它工作得很好,但当我把它拿到我的部门向我的老师展示它的工作能力时…这是错误IOError:[Errno socket error][Errno-2]名称或服务未知
这是我用过的代理“proxy4.nehu.ac.in:3128“我如何将其放入程序的代码中…”。。?请帮助我,我被它困住了。好的,我会检查一下,如果我遇到一些问题,我会回来找你。现在我不能测试它,因为我必须在大学自己尝试,因为我没有代理网络来测试。如果你同意的话?你可以自己轻松地设置一个代理。例如,squid非常流行。我是python新手,所以很难实现,只是为了开头,你能告诉我应该如何将其放入程序中吗?我在python文档中读到,urllib2中有一个proxyHandler可以处理代理,我如何把它放在这样一种方式,它将通过我用来连接到互联网的代理。请帮助我是python新手,所以我很难实现,首先,你能告诉我应该如何把它放在我的程序中吗?我在python文档中读到,urllib2中有一个proxyHandler可以处理代理,我如何将它放在我用来连接到internet的代理中。请帮助我这样做吗proxies={'http':'http://proxya4.nehu.ac.in }
您需要端口和结束引号。因此它应该是proxies={'http':'http://proxya4.nehu.ac.in:3128' }
我可以稍后再跟你联系吗?我会先试试,让你知道事情的进展情况。我真的很想这样做..我内心很难受。嗨,我试过你的建议我在打印r=requests时得到了“回复200”。get(“http://www.dota2.com,代理=poxies)
这意味着什么。200是响应的状态码。它表示响应正常。[1]要从页面获取html,您需要打印r.text
[1]:我应该这样说吗proxy={'http':'http://proxya4.nehu.ac.in }
您需要端口和结束引号。因此它将是代理={'http':'http://proxya4.nehu.ac.in:3128“}
我可以稍后再跟你联系吗?我会先试试,让你知道事情的进展情况。我真的很想这样做..我内心很难受。嗨,我试过你的建议,我在打印r=requests时得到了“回复200”。get(”http://www.dota2.com,代理=poxies)
这意味着什么。200是响应的状态码。表示响应正常。[1]要从页面获取html,您需要打印r.text
[1]:
import sys
import urllib
import urlparse
from bs4 import BeautifulSoup
def process(url):
page = urllib.urlopen(url)
text = page.read()
page.close()
soup = BeautifulSoup(text)
with open('s.txt','w') as file:
for tag in soup.findAll('a', href=True):
tag['href'] = urlparse.urljoin(url, tag['href'])
print tag['href']
file.write('\n')
file.write(tag['href'])
def main():
if len(sys.argv) == 1:
print 'No url !!'
sys.exit(1)
for url in sys.argv[1:]:
process(url)