如何将字符串格式维基百科链接转为HTML?解决JSONDecodeError
维基百科链接转HTML及JSONDecodeError解决办法
- 核心逻辑:你手里的字符串链接本身不是HTML,必须先请求链接获取对应页面的HTML源码,再传入爬取函数,才能避免JSON解析错误。
具体实现步骤
1. 安装依赖库
确保安装requests(用于请求网页)和pandas(处理数据框):
pip install requests pandas
2. 编写链接转HTML的辅助函数
这个函数负责请求链接,返回网页的HTML文本,同时加请求头规避维基百科的反爬机制:
import requests def get_html_from_link(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } try: resp = requests.get(url, headers=headers) resp.raise_for_status() # 抛出请求失败的异常 return resp.text except Exception as e: print(f"处理链接 {url} 出错: {str(e)}") return None
3. 批量应用到数据框
假设你的数据框是df,包含Links列,用apply批量转换并提取文本:
import pandas as pd # 示例数据(替换成你的实际数据框) df = pd.DataFrame({ 'Links': [ 'https://www.wikipedia.com/', 'https://www.wikipedia.com/', 'https://www.wikipedia.com/' ] }) # 新增HTML内容列 df['HTML'] = df['Links'].apply(get_html_from_link) # 调用你的文本提取函数(替换成你自己的函数名) df['Article_Text'] = df['HTML'].apply(your_text_extraction_function)
4. 错误根源说明
你遇到的JSONDecodeError是因为爬取函数把字符串链接当成JSON数据解析了,只要确保传入的是请求后得到的HTML文本,就能解决这个问题。
内容的提问来源于stack exchange,提问作者CPDatascience
相关产品推荐
相关产品推荐

