Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】

山海之间
山海之间
发布时间:2026-10-11| 2人浏览过
原创

本文介绍如何使用Python3结合requests、lxml和json模块,爬取百姓网列表数据并保存为JSON格式。文章详细讲解了环境准备、代码实现及文件保存步骤,适合初学者参考学习。

环境准备与模块安装

在开始编写爬虫代码之前,需要确保开发环境已正确配置。首先,系统需安装Python3解释器。其次,代码中使用的第三方库需要手动安装,主要包括用于发送HTTP请求的requests模块和用于解析HTML的lxml模块。此外,还需要在本地创建一个用于存储结果的JSON文件(例如d.json)。

核心代码实现

爬虫的核心逻辑分为数据获取、解析和存储三个阶段。首先,通过requests库构造带有模拟浏览器头文件的HTTP请求,以获取目标网页的HTML内容。接着,利用lxml库将HTML字符串解析为DOM树,并通过XPath表达式定位目标元素。最后,遍历提取出的数据项,将其封装为字典并保存为JSON格式。

具体实现代码如下:

import requests
from lxml import etree
import json
#构造头文件,模拟浏览器访问
url="http://xian.baixing.com/meirongfuwu/"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36','referer':url}
response=requests.get(url,headers=headers)
body=response.text #获取网页内容
html=etree.HTML(body,etree.HTMLParser())
gethtml=html.xpath('//div[contains(@class,"media-body-title")]')
# 存储为数组list
jsondata = []
for item in gethtml:
  jsonone={}
  jsonone['title']=item.xpath('.//a[contains(@class,"ad-title")]/text()')[0]
  jsonone['url']=item.xpath('.//a[contains(@class,"ad-title")]/attribute::href')[0]
  jsonone['phone']=item.xpath('.//button[contains(@class,"contact-button")]/attribute::data-contact')[0]
  jsondata.append(jsonone)
# 保存为json
with open("./d.json",'w',encoding='utf-8') as json_file:
  json.dump(jsondata,json_file,ensure_ascii=False)

代码逻辑详解

在获取网页内容后,代码通过XPath表达式//div[contains(@class,"media-body-title")]定位到包含广告信息的容器。随后,遍历每个容器元素,提取其中的标题、链接和联系电话。标题通过.//a[contains(@class,"ad-title")]/text()获取,链接通过.//a[contains(@class,"ad-title")]/attribute::href获取,联系电话则通过.//button[contains(@class,"contact-button")]/attribute::data-contact获取。提取的数据被存入jsondata列表中,最后使用json.dump方法将列表保存为JSON文件,并设置ensure_ascii=False以支持中文输出。

注意事项

在实际应用中,需注意以下几点:一是目标网站的HTML结构可能发生变化,导致XPath表达式失效,需定期更新;二是频繁请求可能导致IP被封禁,建议设置合理的请求间隔;三是部分数据可能通过JavaScript动态加载,静态HTML解析无法获取,需结合其他技术手段。

以上就是Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】的详细内容,更多关于Python爬虫、JSON处理、百姓网数据抓取的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。