作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经成功地能够使用 urllib2,但是对于我正在测试的这个网站,它突然不起作用了。我查看了论坛并尝试了一些修复程序,但它似乎不起作用。下面是解决问题但对我不起作用的一种方法的示例。有人可以帮助我连接到它吗?
报错的代码:
from bs4 import BeautifulSoup
import urllib2
proxy_support = urllib2.ProxyHandler({"http":"http://username:password@ip:port"})
hdr = {'Accept': 'text/html,application/xhtml+xml,*/*'}
url = 'http://www.carnextdoor.com.au/'
opener = urllib2.build_opener(proxy_support)
urllib2.install_opener(opener)
req=urllib2.Request(url,headers=hdr)
#Here I get the error with and without using the header or going html = urllib2.urlopen(url).read()
html = urllib2.urlopen(req).read()
soup=BeautifulSoup(html,"html5lib")
print soup
最佳答案
在添加用户代理之前,我得到了 403,以下内容对我来说已经足够了:
hdr = {'Accept': 'text/html,application/xhtml+xml,*/*',"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"}
url = 'http://www.carnextdoor.com.au/'
req=urllib2.Request(url,headers=hdr)
#Here I get the error with and without using the header or going html = urllib2.urlopen(url).read()
html = urllib2.urlopen(req).read()
soup=BeautifulSoup(html,"html5lib")
print soup
没有用户代理:
In [10]: hdr = {'Accept': 'text/html,application/xhtml+xml,*/*'}
In [11]: url = 'http://www.carnextdoor.com.au/'
In [12]: req=urllib2.Request(url,headers=hdr)
In [13]: html = urllib2.urlopen(req).read()
---------------------------------------------------------------------------
HTTPError Traceback (most recent call last)
<ipython-input-13-dbeb64d95cd3> in <module>()
----> 1 html = urllib2.urlopen(req).read()
使用用户代理:
In [20]: hdr = {'Accept': 'text/html,application/xhtml+xml,*/*',"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"}
In [21]: req=urllib2.Request(url,headers=hdr)
In [22]: html = urllib2.urlopen(req).read()
In [23]:
使用 requests没有任何用户代理也可以正常工作。
In [28]: import requests
In [29]: r = requests.get(url)
In [30]: r.status_code
Out[30]: 200
关于python - HTTP 错误 403 : Forbidden urlib2 Python 2. 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35834365/
为什么下一个代码不起作用?我找不到原因。 import mimetypes import glob, urllib for file in glob.glob("C:\\Users\\joey\\De
我正在编写一个脚本,用于访问链接列表并解析信息。 它适用于大多数网站,但在某些网站上令人窒息“UnicodeEncodeError:‘ascii’编解码器无法对位置 13 中的字符‘\xe9’进行编码
我是一名优秀的程序员,十分优秀!