如何使用BeautifulSoup和请求删除动态变量Javascript值

2024-09-30 14:26:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在抓取登录页面,我只需要JAVASCRIPT标记中的VAR SALT=variable。 这是网站=https://ib.muamalatbank.com/ib-app/loginpage

当我阅读这里的所有答案时,使用BeautifulSoup和requests,我可以得到这2个变量(可能是因为它是静态的): var muserid='User ID必须填写'; var mpassword='必须填写密码'

但当我尝试刮取这个var SALT=,它会给我所有的var值。 My result code in python

我只需要这个VAR SALT值,没有引号 这里的PIC=Source VAR SALT VALUE

我已经在使用re.search、re.compile、re.findall,但我是新手,keep给我错误“objectcannotstring…”

from bs4 import BeautifulSoup as bs
import requests
import re
import lxml
import json

URL = 'https://ib.muamalatbank.com/ib-app/loginpage'
REF = 'https://ib.muamalatbank.com'

HEADERS = {'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0', 'origin': URL, 'referer': REF}

s = requests.session()
soup = bs(s.get(URL, headers=HEADERS, timeout=5, verify=False).text,"html.parser")

script = soup.find_all("script")[11]
ambilteks = soup.find_all(text=re.compile("salt=(.*?)"))
print(ambilteks)

注意:1)我需要帮助,但对使用Selenium不感兴趣

  1. 我有PHP Laravel的脚本,它完全可以工作(我需要Python),但我没有Laravel方面的知识,任何人都可以问我,我会给出Laravel代码

请帮帮我,非常感谢


Tags: httpsimportrecomappurlvarrequests
1条回答
网友
1楼 · 发布于 2024-09-30 14:26:00

尝试使用re.compile并将''添加到正则表达式中,然后提取第一个结果。未使用页面响应进行测试。首先验证响应中是否实际存在该字符串

p = re.compile(r"var salt='(.*?)'")
res = p.findall(s.get(URL, headers=HEADERS, timeout=5, verify=False).text)[0]
print(res)

相关问题 更多 >