为什么无法获取 www.nasdaq.com/symbol/c/stock-report 的网页内容?
我想把 www.nasdaq.com/symbol/c/stock-report
这个网页下载成一个文件。
方法一:
from urllib.request import urlopen
url=r'http://www.nasdaq.com/symbol/c/stock-report'
urlopen(url)
但是出现了错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "D:\Python34\lib\urllib\request.py", line 153, in urlopen
return opener.open(url, data, timeout)
File "D:\Python34\lib\urllib\request.py", line 461, in open
response = meth(req, response)
File "D:\Python34\lib\urllib\request.py", line 571, in http_response
'http', request, response, code, msg, hdrs)
File "D:\Python34\lib\urllib\request.py", line 499, in error
return self._call_chain(*args)
File "D:\Python34\lib\urllib\request.py", line 433, in _call_chain
result = func(*args)
File "D:\Python34\lib\urllib\request.py", line 579, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
方法二:
wget -c 'http://www.nasdaq.com/symbol/c/stock-report'
'http://www.nasdaq.com/symbol/c/stock-report': Unsupported scheme.
我该怎么用程序自动下载这个网页呢?
1 个回答
0
我试了 requests
,它能正常工作 - 我得到了些HTML数据和状态码200。
import requests
r = requests.get('http://www.nasdaq.com/symbol/c/stock-report')
print r.status_code
print r.text
但是 HTTP Error 403: Forbidden
可能意味着服务器把你当成了机器人、黑客、恐怖分子等等,所以不让你访问它的页面。
你的脚本需要像人类一样使用浏览器来操作,比如要设置用户代理、使用cookies、会话ID、反应时间等等。