Извлечение данных из JavaScript (Python Scraper) - PullRequest
0 голосов
/ 28 января 2011

В настоящее время я использую сочетание urllib2, pyquery и json для очистки сайта, и теперь я обнаружил, что мне нужно извлечь некоторые данные из JavaScript.Одна мысль - использовать движок JavaScript (например, V8), но это кажется излишним для того, что мне нужно.Я бы использовал регулярные выражения, но выражение для этого кажется слишком сложным.

JavaScript:

(function(){DOM.appendContent(this, HTML("<html>"));;})

Мне нужно извлечь <html>, но я не совсем уверен, каксделать это.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <html> * * * * * * * * * * * * *] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *1007* * * * * * * * * * * * * * * * * 1

Ответы [ 2 ]

2 голосов
/ 28 января 2011

Почему регулярное выражение?Разве вы не можете просто использовать две подстроки, поскольку знаете, сколько символов вы хотите обрезать с начала и до конца?

string[42:-7]

Кроме того, что вы быстрее, чем регулярное выражение, тогда не имеет значения, если кавычкивнутри <html> сбежали или нет.

1 голос
/ 28 января 2011

Если бы каждое вхождение " в html-коде было экранировано с помощью \" (в конце концов, это строка JavaScript), вы можете использовать

HTML\("((?:\\"|.)*?)"\)

чтобы перевести параметр в HTML в первую группу захвата.

Обратите внимание, что это регулярное выражение еще не является самой строкой Javascript.

...