写了个小案例,顺便复习一下以前学的知识点。 PS:复试之前绝不写爬虫案例了(对于现在的我来说,费脑又花时间),再写我吃XX. 文章目录爬取X房网二手房信息爬取步骤URL特征查看HTML页面源代码Xpath语句开始敲python代码mysql数据查询 爬取X房网二手房信息 要求:由用户输入需要的城市名、小区名称和页数,爬取相关信息,再将结果存入mysql 备注:用input方法输入城市名称,小区名称和页数。 爬取步骤 查看URL特征 研究HTML页面结构 编写xpath语句 敲python代码(将数据存入数据库) 在mysql中按条件查询数据 URL特征 ①不同城市URL地址特征 南京二手房 【Python爬虫实战:X房网二手房信息抓取与存储】 在这个案例中,我们将学习如何使用Python进行网络爬虫,具体目标是从X房网抓取指定城市的二手房信息,并将其存储到MySQL数据库中。以下是实现这一目标的主要步骤: 1. **理解URL结构**: - **城市URL特征**:如南京二手房的URL以`nj`(南京拼音缩写)开头,如`https://nj.lianjia.com/ershoufang/`。 - **小区URL特征**:小区名称以编码形式出现在URL中,如`rs%E7%8F%8D%E7%8F%A0%E5%9B%AD`,可以使用JavaScript的`decodeURI`函数解码。 - **页数URL特征**:页数通常以`pgk`的形式表示,如`pg2`代表第二页。 2. **分析HTML页面源代码**: - **房源信息结构**:二手房信息被包含在`<ul>`元素内的多个`<li>`元素中,每个`<li>`元素的`class`属性值可能是`clear LOGCLICKDATA`或`clear LOGVIEWDATA LOGCLICKDATA`。 - **提取关键信息**:二手房名称位于`<div class='info clear'>`下的`<div class='title'><a>`中,价格位于`<div class='totalPrice'><span>`中,详细信息位于`<div class='houseInfo'>`内。 3. **编写XPath语句**: - **大节点**:使用XPath选择器选取包含房源信息的`<li>`元素,如`//ul/li[@class='clear LOGCLICKDATA'] | //ul/li[@class='clear LOGVIEWDATA LOGCLICKDATA']`。 - **二手房名称**:`./div[@class='info clear']/div[@class='title']/a/text()`。 - **价格**:`./div[@class='info clear']//div[@class='totalPrice']/span/text()`。 - **二手房信息**:`./div[@class='info clear']//div[@class='houseInfo']/text()`。 4. **编写Python代码**: - 引入必要的库:`requests`用于发送HTTP请求,`lxml`处理HTML解析,`pymysql`操作MySQL数据库。 - 用户输入:通过`input`函数获取城市名、小区名和页数。 - 构建URL:根据输入信息拼接URL。 - 发送请求:使用`requests.get`获取网页内容。 - 解析HTML:使用`lxml.etree`解析HTML,提取所需信息。 - 数据库操作:创建`house_table`表,使用`pymysql`的`cursor.execute`将数据插入数据库。 5. **异常处理**: - 在实际操作中,应添加异常处理,例如处理请求失败、解析错误或数据库连接问题。 - 对于不存在的小区,需在程序中进行检查,避免无效数据的存储。 6. **数据存储**: - 创建数据库表结构:`CREATE TABLE house_table (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, price INT DEFAULT 0, info VARCHAR(200) DEFAULT 'None')`。 - 插入数据:使用SQL语句`INSERT INTO house_table (name, price, info) VALUES (%s, %s, %s)`,配合`pymysql`的执行方法,将提取的信息存储到数据库中。 通过以上步骤,我们可以构建一个简单的爬虫程序,实现从X房网抓取并存储二手房信息的目标。注意,在实际应用中,应遵守网站的robots.txt文件规定,尊重网站的爬虫政策,以及遵守相关法律法规。
- 粉丝: 5
- 资源: 944
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 条件方差总和 (SCV) 是多模态图像配准的新相似性指标Matlab代码.rar
- 通过 FFT 按总(广义)变化进行图像降噪Matlab代码.rar
- 填充圆圈或麦田圈区域Matlab代码.rar
- 通过 RGB-HSI 图像融合提高图像空间分辨率的 GUI Matlab.rar
- 通过 HSV 色彩空间中的阈值检测图像中的彩色区域。.rar
- 通过 RGB-HSI 图像融合提高图像空间分辨率的 GUI MATLAB代码.rar
- 通过使用强度平均值度量从用户定义的种子点生长区域来进行分割。.rar
- 通过使用强度平均度量从种子点生长区域进行分割Matlab代码.rar
- 通过基于 Adaptive Cuckoo 搜索的 Wiener 滤波器进行多光谱图像去噪Matlab代码.rar
- 通过在矩形波导中设计耦合腔体滤波器Matlab代码.rar
- 图像 2D 变换 平移 旋转 缩放Matlab代码.rar
- 图像的 Choatic Baker 映射解密Matlab代码.rar
- 图像的对比度调整Matlab代码.rar
- 通过自适应核回归实现视频超分辨率Matlab代码.rar
- 图像的哈希值Matlab代码.rar
- 图像对比度拉伸Matlab代码.rar
评论0