【发布时间】:2021-10-31 20:34:41
【问题描述】:
使用arsenic库抓取网页,然后用beautifulsoup解析网页源。 Soup 包含一个带有大量脚本的大型 html。我需要 -9 从最后。
page_source = await session.get_page_source()
soup = bs(page_source, 'html.parser')
scripts = soup.find_all('script')
script9 = scripts[-9].next
这里是脚本9:
sometext;
var thumbdata = {
thumbs: [{avatar: "/i/nophoto.jpg", username: "IslandGirlSearching",la:"0 second ",chatid: "0",userid: "2088789", age:"21",city:"Cebu"},{avatar: "/p/2021-08/Cristina266/ava-1629535964.jpg", username: "Cristina266",la:"0 second ",chatid: "0",userid: "2095868", age:"26",city:"Pasig City"} ] };
var source = sometext;
然后我按照你分享的例子:
pattern = re.compile(r"var thumbdata = {\n"
r"(.*?);")
m = pattern.match(script9.string)
thumbs = json.loads(m.groups()[0])
for thumb in thumbs:
print(thumb)
检查了我的正则表达式,它是正确的。但是当我执行此代码时,我得到属性错误:
AttributeError: 'NoneType' object has no attribute 'groups'
【问题讨论】:
-
我猜是这样,现在我正在尝试获取正确的 reg 表达式以匹配它。如果您能对此提供帮助,我将不胜感激。
-
您能否编辑您的问题以使您的代码符合minimal reproducible example 准则并包含一些
page_source的缩小样本数据? -
编辑了我的问题,希望现在更好
-
您能否说明一下您是如何知道您的 RegExp 模式是“正确”的?
标签: python json parsing beautifulsoup