python - 使用Python登录网站并进行网络抓取

标签 python beautifulsoup python-requests

我需要抓取数据的网页位于登录页面之后。我尝试了多种方法来实现这一目标,但似乎都不起作用。有人可以帮忙吗?我的代码如下...

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/

相关文章:

python - Django:为生产中的网站设置高效的日志系统

python - 如何在 PyQt5 中使用 PyInstaller --onefile 选项和 resource_path 通过样式表添加图标?

python - 识别标签结构不同的分支

regex - 使用正则表达式或漂亮的汤从 Instagram 抓取某人的网站

javascript - 使用 Python 获取 DHCP 客户端列表

python - 在 Python 中处理来自 CSV 的字符串输入

Python IP更改

python - 从特定 channel 抓取 YouTube 视频并进行搜索?

python - 在Python中抓取错误: 'charmap' codec can't encode character/can't concat str to bytes

python - 为什么我没有输出?