Skip to main content
 首页 » 编程设计

python之如何使用正则表达式抓取 json 值

2024年11月24日29落叶

<分区>

我一直在尝试学习正则表达式,但又一次被卡住了。

我要抓取的是以下值:

var preloadedItems = [ 
{ 
  "id": "8971", 
  "permalink": "https://www.randomsite1.com" 
}, 
{ 
  "id": "8943", 
  "permalink": "https://www.randomsit2e.com" 
}, 
{ 
  "id": "8944", 
  "permalink": "https://www.randoms3ite.com" 
}, 
{ 
  "id": "8950", 
  "permalink": "https://www.random4site.com" 
}, 
{ 
  "id": "8910", 
  "permalink": "https://www.random5site.com" 
}, 
{ 
  "id": "8915", 
  "permalink": "https://www.rando6msite.com" 
} 
]; 

#代码很长,所以我没有把所有的东西都贴在这里。

这是我做的

p = re.compile(r'var preloadedItems = \[(.*?)\];', re.DOTALL) 
data = p.findall(req.text)[0] 

这会返回我发布的 json 的全部值。但是,我只想将所有永久链接都抓取到列表中,并且我尝试这样做

p = re.compile(r'var preloadedItems = \[(.*?)\];', re.DOTALL) 
data = json.loads(p.findall(r.text)[0]).items() 

但我确实得到了一个错误:Extra data: line 1 column 2657 (char 2656)

我想知道我如何能够将所有永久链接抓取到一个列表中?


更新:

我的想法是首先使用正则表达式抓取 json 值,以便稍后可以将其用作 json.loads(regexValue) - 意思是我使用正则表达式来获取值 Regexjson = {。 ...} 然后使用 json.loads(Regexjson)...