Python爬取网页JS动态加载的JSON数据教程

想要从网页中提取JS动态加载的JSON数据吗?这篇教程将教你如何使用Python的requests库、正则表达式和BeautifulSoup库实现。

步骤一:使用requests库获取网页内容

首先,使用requests库发送HTTP请求获取目标网页的HTML内容:

import requests

url = 'https://example.com'
response = requests.get(url)
html = response.text

步骤二:使用正则表达式或BeautifulSoup提取JSON数据

接下来,我们需要从网页内容中找到包含JSON数据的部分。这里可以使用正则表达式或BeautifulSoup库。

方法一:使用正则表达式

import re

# 使用正则表达式匹配json数据
pattern = re.compile(r'var data = (\{.*?\});')
match = pattern.search(html)
if match:
    json_data = match.group(1)
    print(json_data)

方法二:使用BeautifulSoup库

from bs4 import BeautifulSoup

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

# 使用BeautifulSoup提取json数据
script_tag = soup.find('script', text=re.compile(r'var data = (\{.*?\});'))
if script_tag:
    json_data = re.search(r'var data = (\{.*?\});', script_tag.string).group(1)
    print(json_data)

以上代码中,我们使用正则表达式或BeautifulSoup定位包含JSON数据的script标签,并提取出JSON数据字符串。

步骤三:使用json库解析JSON数据

最后,使用json库将提取的JSON字符串解析成Python字典或列表:

import json

data = json.loads(json_data)
print(data)

现在,你已经成功地使用Python爬取并解析了网页中JS动态加载的JSON数据!

Python爬取网页JS动态加载的JSON数据教程

原文地址: https://www.cveoy.top/t/topic/fbLf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录