python - 网络抓取隐藏字段
问题描述
我正在网页抓取一个网站:https ://apps.ktrade.pk/webterminalv3/SignIn我可以从中获取 HTML,但是我抓取的 html 元素中没有出现带有类 box-user-id 子元素的 div;在检查元素上,显示了 box-user-id 的子元素。
我已经尝试过使用 selenium、BeautifulSoup、mechanicalsoup 等多个库。请告诉我该怎么做。提前致谢。
解决方案
您可以尝试使用该代码登录
import requests
from bs4 import BeautifulSoup
session = requests.Session()
# get auth page
auth = session.get('https://apps.ktrade.pk/webterminalv3/SignIn')
# collect csrf token
soup = BeautifulSoup(auth.text, 'html.parser')
csrf_token = soup.find('input', {'name': 'csrfPreventionSalt'})['value']
# create login request
session.post('https://apps.ktrade.pk/webterminalv3/ajax/login', data={
'username': 'your_username', 'password': 'your_password',
'csrfPreventionSalt': csrf_token, 'actBrandName': 'KTrade'
})
推荐阅读
- php - 无法启动 MySQL:“找不到域”在 macos 上运行 mysql (Laravel Valet)
- javascript - Vue.js - 如何将参数传递给计算属性中的 JavaScript 过滤器函数?
- json - go图表动态数据
- python - 使用正则表达式匹配交替的字母数字字符
- linux - 内部 linux 设备上的 SSL
- mongodb - Kubernetes / Rancher 2,带有本地存储卷部署的 mongo-replicaset
- javascript - PHP函数从表单发布而不刷新页面?
- c# - 尝试存储列表视图 ID
- matlab - 如何存储来自 ode 求解器的中间变量?
- php - php preg_split 在可能包含空格的字段中由多个空格和制表符分解行