#javascript #python #beautifulsoup
#javascript #python #beautifulsoup
Вопрос:
Я очищаю страницу входа в систему, мне нужна только переменная VAR SALT= в ТЕГЕ JAVASCRIPT. Это веб-сайт = https://ib.muamalatbank.com/ib-app/loginpage
Когда я прочитаю все ответы здесь, используя BeautifulSoup и запросы, я могу получить эти 2 переменные (возможно, потому, что они статические): var muserid= ‘Идентификатор пользователя должен быть заполнен’; var mpassword= ‘Пароль должен быть заполнен’;
Но когда я пытаюсь очистить эту переменную SALT= , она выдает мне все значения переменной. Мой результирующий код на python
Мне просто нужно это значение VAR SALT только без кавычек Здесь ЗНАЧЕНИЕ PIC = Source VAR SALT
Я уже использую re.search и re.compile, re.findall, но я новичок, продолжаю выдавать мне сообщение об ошибке «Объект не может содержать строку ….»
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,
- У меня есть скрипт на PHP-Laravel, он полностью рабочий (мне нужен на Python), но я не разбираюсь в laravel, любой может спросить меня, я дам код Laravel
Пожалуйста, помогите мне, большое вам спасибо
Ответ №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)
Комментарии:
1. Не работает, брат. Можете ли вы дать мне полный код? Спасибо
2. что происходит?