【问题标题】:Webscraping for the Hidden Fields隐藏字段的网页抓取
【发布时间】:2021-09-23 16:49:04
【问题描述】:

我正在抓取一个网站:https://apps.ktrade.pk/webterminalv3/SignIn 我可以从中获取 HTML,但是我抓取的 html 元素中没有出现一个带有 box-user-id 子元素类的 div;在检查元素上,显示 box-user-id 的子元素。

我已经尝试过使用 selenium、BeautifulSoup、mechanicalsoup 等多个库。请告诉我该怎么做。提前致谢。

【问题讨论】:

  • 你到底想刮什么?您是否尝试自动登录?
  • 是的。登录后,我想从该网站上抓取一些数据。

标签: python web-scraping hidden-field


【解决方案1】:

您可以尝试使用该代码登录

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'
})

【讨论】:

  • 谢谢。现在我正在登录并抓取数据:)
  • @NaimaUrooj 如果可以,请将答案标记为正确
  • 好的。你能告诉我你是从哪里找到这个东西的吗? session.post('apps.ktrade.pk/webterminalv3/ajax/login', data={ 'username': 'your_username', 'password': 'your_password', 'csrfPreventionSalt': csrf_token, 'actBrandName': 'KTrade' })
  • @NaimaUrooj 在开发工具中。您可以在屏幕上查看 - ibb.co/QC0f7pd
最近更新 更多