Python Xpath 抓取廊坊 7 日天气数据教程
使用 Xpath 从网页爬取廊坊近 7 日天气的代码
本教程介绍如何使用 Python 和 Xpath 从网页抓取廊坊未来 7 天的天气信息。
代码示例:
import requests
from lxml import etree
url = 'https://xxx.com/weather' # 替换为目标网站链接
response = requests.get(url)
html = response.text
selector = etree.HTML(html)
# 获取近7日天气信息的 XPath 表达式
xpath_expr = '//div[@class='weather-container']/div[position()<8]//div[@class='weather-info']//text()'
weather_info = selector.xpath(xpath_expr)
print(weather_info)
代码解析:
- 导入库: 导入
requests库用于发送 HTTP 请求获取网页内容,导入lxml库用于解析 HTML 文档。 - 获取网页内容: 使用
requests.get(url)获取目标网站的 HTML 内容,并将其保存到html变量中。 - 解析 HTML: 使用
etree.HTML(html)将 HTML 字符串解析为一个etree对象,方便使用 Xpath 表达式进行元素选择。 - 定义 Xpath 表达式:
xpath_expr定义了 Xpath 表达式,用于选择目标网站中包含近 7 日天气信息的元素。该表达式使用了相对路径,首先选取了 class 为 'weather-container' 的 'div' 元素,然后选取前 7 个子元素(即近 7 日天气的信息),最后选取子元素中 class 为 'weather-info' 的 'div' 元素下的所有文本节点,即可获取天气信息。 - 提取天气信息: 使用
selector.xpath(xpath_expr)执行 Xpath 表达式,并将获取到的天气信息保存到weather_info变量中。 - 打印结果: 使用
print(weather_info)打印获取到的天气信息。
注意事项:
- 本示例代码仅供参考,实际爬取时需要根据目标网站的页面结构和元素属性进行调整。
- 使用 Xpath 进行网页爬取时,建议使用 Chrome 浏览器自带的开发者工具来查看目标网页的 HTML 结构,并根据实际情况编写 Xpath 表达式。
- 请尊重网站的 robots.txt 协议,不要过度爬取网页,以免造成服务器负担。
- 请勿将本教程用于任何违法行为。
原文地址: https://www.cveoy.top/t/topic/n0zW 著作权归作者所有。请勿转载和采集!