【发布时间】:2017-02-20 13:36:51
【问题描述】:
我正在尝试创建一个每天从网站获取我的学校成绩的程序。然后存储值并为我的成绩创建一个图表,但是当我尝试抓取页面时,我收到的 HTML 与我使用检查元素获得的 HTML 不同。
from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("https://ames.usoe-dcs.org/Students/2567")
bsObj = BeautifulSoup(html.read(), 'lxml');
print(bsObj)
检查元素给我:http://pastebin.com/BakmpqUM
虽然python给了我:http://pastebin.com/7gPY1WgB
我认为这是因为我的成绩 (https://ames.usoe-dcs.org/Students/2567) 的 URL 是私有的,所以当你在浏览器中输入它时,它会在此处返回我:https://ames.usoe-dcs.org/Login/?DestinationURL=%2FStudents%2F2566
有没有办法使用 python 让我自动登录?
【问题讨论】:
-
您必须弄清楚该站点如何允许您在浏览器中进行身份验证。例如,当您使用您的用户名/密码成功登录时,HTTP 响应可能会返回一个
Set-Cookie标头,您必须将其与所有后续 HTTP 请求一起传递。 -
如果网站从未将您注销,那么您可以将 cookie 与您的脚本一起保存(而不是您的用户名和密码)。
标签: python html python-3.x web-scraping