我需要抓取数据的网页位于登录页面之后。我尝试了多种方法来实现这一目标,但似乎都不起作用。有人可以帮忙吗?我的代码如下...
import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36(KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
login_data = {
'appname': 'unknown',
'appversion': 'unknown',
'ostype': 'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36
(khtml, like gecko) chrome/70.0.3538.110 safari/537.36',
'type': 'null',
'ssobypass': 'true',
'dirlogin': 'true',
'inch': 'true',
'scrWidth': '1920',
'scrHeight': '1040',
'username': 'TA_KAITM_B_4a',
'userpassword': ''}
with requests.Session() as s:
url = "http://cmis.ittdublin.ie"
r = s.get(url, headers=headers)
soup = BeautifulSoup(r.content, 'lxml')
r = s.post(url, data=login_data, headers=headers)
print(r.content)
它不允许我在此处添加登录屏幕的 HTML... 下面是代码,如果运行将返回登录页面的 HTML...
import requests
from lxml import html
session_requests = requests.session()
login_url = "http://cmis.ittdublin.ie/eportal/index.jsp"
result = session_requests.get(login_url)
payload = {
"username": "TA_KAITM_B_4a"
}
result = session_requests.post(
login_url,
data = payload,
headers = dict(referer=login_url)
)
print(result.text)
url = 'http://cmis.ittdublin.ie/eportal/index.jsp'
result = session_requests.get(
url,
headers = dict(referer = url)
)
最佳答案
您需要发布到的 URL 是
http://cmis.ittdublin.ie/eportal/PortalServ?reqtype=login
我对这能让你进入感到乐观。它是否能让你到达有用的地方取决于 setAdminLoginLocation() 的作用,但也许除了管理员登录之外它什么也不做。
关于python - 使用Python登录网站并进行网络抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53766901/