<分区> 分区>
我一直在尝试学习正则表达式,但又一次被卡住了。
我要抓取的是以下值:
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)...
