【发布时间】:2017-07-07 07:57:51
【问题描述】:
我是 wsj 的付费会员,我尝试抓取文章来完成我的 NLP 项目。我以为我保留了会话。
rs = requests.session()
login_url="https://sso.accounts.dowjones.com/login?client=5hssEAdMy0mJTICnJNvC9TXEw3Va7jfO&protocol=oauth2&redirect_uri=https%3A%2F%2Faccounts.wsj.com%2Fauth%2Fsso%2Flogin&scope=openid%20idp_id&response_type=code&nonce=18091b1f-2c73-4a93-ab10-77b0d4d4f9d3&connection=DJldap&ui_locales=en-us-x-wsj-3&mg=prod%2Faccounts-wsj&state=NfljSw-Gz-TnT_I6kLjnTa2yxy8akTui#!/signin"
payload={
"username":"xxx@email",
"password":"myPassword",
}
result = rs.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)
我要解析的文章。
r = rs.get('https://www.wsj.com/articles/singapore-prime-minister-lee-rejects-claims-he-misused-state-powers-in-family-feud-1499094761?tesla=y')
然后我发现html仍然是非会员的
我还尝试了另一种方法,登录后使用 CURL 保存 cookie
curl -c cookies.txt -I "https://www.wsj.com"
curl -v cookies.txt "https://www.wsj.com/articles/singapore-prime-minister-lee-rejects-claims-he-misused-state-powers-in-family-feud-1499094761?tesla=y" > test.html
结果是一样的。
我不太熟悉浏览器背后的身份验证机制。有人可以解释为什么上述两种方法都失败了,我应该如何解决它以实现我的目标。非常感谢。
【问题讨论】:
标签: curl web-crawler python-requests