【问题标题】:How Scraping Dynamic Variable Javascript value using BeautifulSoup and Requests如何使用 BeautifulSoup 和 Requests 抓取动态变量 Javascript 值
【发布时间】:2020-10-26 23:57:03
【问题描述】:

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

当我在这里阅读所有答案时,使用 BeautifulSoup 和请求,我可以获得这 2 个变量(可能是因为它是静态的): var muserid='必须填写用户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 给我错误“Object cannot string....”

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 代码

请帮帮我,非常感谢

【问题讨论】:

    标签: javascript python beautifulsoup


    【解决方案1】:

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

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

    【讨论】:

    • 不工作的兄弟。能给我完整的代码吗?谢谢
    • 发生了什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 2021-11-02
    • 2015-04-20
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    相关资源
    最近更新 更多