无法下载html(整个网页)

时间:2018-04-10 18:21:43

标签: python-2.7 web-scraping python-requests

我正在尝试从

下载整个HTML代码
  

http://www.ivolatility.com/options/AMZN/NASDAQ/

输出不包括表格中的数据。

这是我正在使用的代码

url = 'http://www.ivolatility.com/options/AMZN/NASDAQ/'
r = requests.get(url, allow_redirects=True)
open('C:.../Downloads/amzn.html', 'wb').write(r.content)

我认为这可能与注册问题有关。

我能做什么?

由于

1 个答案:

答案 0 :(得分:0)

您的请求会返回一个登录表单,这意味着您必须登录才能访问该数据。

登录过程相对简单 - 我们所要做的就是将表单数据提交到登录页面(并使用session对象存储cookie)。
然后我们可以使用该经过身份验证的会话来检索表内容。

代码,

import requests

url = 'http://www.ivolatility.com/options/AMZN/NASDAQ/'
login_url = 'https://www.ivolatility.com/login.j'
usr = 'my username'
pwd = 'my password'
data = {
    'username':usr, 'password':pwd,
    'ref_url':login_url, 'service_name':'Home Page', 
    'step':1, 'login__is__sent':1
    }

s = requests.session()
s.post(login_url, data)
r = s.get(url)

with open('my file', 'wb') as f:
    f.write(r.content)