Python爬虫实战:用lxml抓取58同城二手房信息
Python爬虫实战:用lxml抓取58同城二手房信息
想用Python获取最新的房产信息?本文将带你使用requests和lxml库,编写一个爬虫,从58同城网站提取二手房数据。
目标网站: https://bj.58.com/ershoufang/pn1/
提取内容: 二手房标题、价格
代码实现:
import requests
from lxml import etree
# 发送HTTP请求获取网页内容
url = 'https://bj.58.com/ershoufang/pn1/'
response = requests.get(url)
html = response.text
# 创建etree_html对象
etree_html = etree.HTML(html)
# 解析页面数据
house_list = etree_html.xpath('//ul[@class="house-list-wrap"]/li')
for house in house_list:
title = house.xpath('.//h2/a/text()')[0]
price = house.xpath('.//div[@class="price"]/p/text()')[0]
print('房屋标题:', title)
print('房屋价格:', price)
print('-----------')
代码解析:
- 导入库: 首先导入
requests库用于发送HTTP请求,lxml库用于解析HTML文档。 - 获取网页内容: 使用
requests.get()方法获取目标网页的HTML代码。 - 创建etree对象: 使用
etree.HTML()方法将HTML代码解析成etree对象,方便后续使用XPath进行数据提取。 - 解析数据:
- 使用XPath表达式
//ul[@class='house-list-wrap']/li定位到包含所有房源信息的列表。 - 循环遍历每个房源,使用XPath表达式
.//h2/a/text()和.//div[@class='price']/p/text()提取房屋标题和价格。 - 打印提取到的信息。
- 使用XPath表达式
注意事项:
- 网站结构可能发生变化,导致XPath表达式失效,需要根据实际情况调整。
- 爬取数据时应遵循 robots 协议,避免对目标网站造成压力。
希望本文能帮助你快速入门Python爬虫,并掌握使用lxml库提取网页数据的技巧。
原文地址: https://www.cveoy.top/t/topic/f4ps 著作权归作者所有。请勿转载和采集!