Как эффективно извлекать данные из тега скрипта с помощью BeautifulSoup в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как эффективно извлекать данные из тега скрипта с помощью BeautifulSoup в Python

Сообщение Anonymous »

Я извлекаю данные из тега с помощью Python по URL-адресу, как показано ниже:

Код: Выделить всё

response = session.get("example.com")

soup = BeautifulSoup(response.content,features='html.parser')
all_scripts = soup.find_all('script')
desiredScript = all_scripts[2].get_text()
desiredData = json.loads(re.match(r'data = ({.*?});', desiredScript)[0])

Код: Выделить всё

desiredScript
выглядит примерно так, как показано ниже

Код: Выделить всё

$(document).ready(function() {
try {
var data = {.....}
}.....
})
Проблема в том, что, поскольку требуемый скрипт очень велик (данные var очень велики в iteslf), и, следовательно, для приведенного ниже кода требуется ~9 секунд. операция завершена:

Код: Выделить всё

desiredData = json.loads(re.match(r'data = ({.*?});', desiredScript)[0])
Как сократить время выполнения для поиска переменных данных из сценария, извлеченных с помощью BeautifulSoup? Есть ли лучший и более быстрый способ сделать это?
Может быть, не использовать библиотеку re, а что-то другое, что может быстрее находить данные из желаемого сценария?
Использование re.match() занимает 9 секунд, что увеличивает общее время выполнения моего сценария.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»