易语言 提取HTML元素,从HTML的script元素内部提取对象键的值

总的来说,这是一个有趣的问题——从HTML代码中的JavaScript代码中提取内容。

基本上,这意味着您首先需要进行HTML解析-找到所需的script元素并获取其文本。然后,第二步是从realty对象中提取所需的数字。

如果您想使用正则表达式方法,那么实际上可以使用正则表达式来定位所需的script元素,也可以提取所需的变量(BeautifulSoupallows to apply regular expression patterns来查找/过滤元素):import re

from bs4 import BeautifulSoup

html = """

window.realty = {"user_id":4243456};

; >

>

"""

pattern = re.compile(r'\{"user_id"\s*:\s*(\d+)\}')

soup = BeautifulSoup(html, "html.parser")

script = soup.find("script", text=pattern)

print(pattern.search(script.text).group(1))

# prints 4243456

{cd5>在这里分解:反斜杠用于转义在正则表达式语法中具有特殊含义的字符

\s*表示零个或更多空格字符(放在那里,以防对象定义中:周围有多余的空格)

\d+表示“一个或多个数字”

括号定义了一个capturing group-这是一种将字符串的特定部分提取到一个组中的方法,然后通过.group(1)进行访问

注意@Evyatar建议的简单的\d+表达式太宽,很容易得到误报。

以下是一些类似的主题,其中还包含一些其他选项:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部