Python XPath 获取img标签的src属性
在网页爬虫开发中,我们经常需要从网页中提取出图片的链接地址。而XPath是一种用于在XML文档中定位节点的语言,非常适合用来从HTML文档中提取数据。本文将介绍如何使用Python和XPath来获取img标签的src属性,从而获取网页中的图片链接。
什么是XPath?
XPath(XML Path Language)是一种用于在XML或HTML文档中定位节点的语言。它使用路径表达式来选取XML文档中的节点或节点集合。
XPath的路径表达式由不同的路径组件组成,用于从文档中选择节点。常见的路径组件包括:
- 元素节点
- 属性节点
- 文本节点
- 注释节点
- 处理指令节点
XPath使用/
来表示从根节点开始的路径,使用//
表示选择所有匹配的节点。例如,//img
表示选择文档中所有的img标签。
使用lxml库解析HTML文档
在Python中,我们可以使用lxml库来解析HTML文档并使用XPath对文档进行查询。首先,我们需要安装lxml库:
pip install lxml
接下来,我们可以使用lxml库的html
模块来解析HTML文档:
from lxml import html
# 解析HTML文档
def parse_html(html_string):
return html.fromstring(html_string)
使用XPath查询img标签的src属性
通过使用XPath表达式,我们可以轻松地选取出img标签的src属性。以下是一个使用XPath查询img标签的src属性的示例代码:
from lxml import html
# 解析HTML文档
def parse_html(html_string):
return html.fromstring(html_string)
# 使用XPath查询img标签的src属性
def get_image_src(html_string):
tree = parse_html(html_string)
image_src_list = tree.xpath('//img/@src')
return image_src_list
在上述代码中,tree
对象表示解析后的HTML文档,image_src_list
是一个包含所有img标签的src属性的列表。我们可以通过遍历这个列表来获取每个图片的链接地址。
示例
以下是一个完整的示例,演示了如何使用XPath获取网页中的图片链接:
import requests
from lxml import html
# 发送HTTP请求获取网页内容
def fetch_html(url):
response = requests.get(url)
return response.text
# 解析HTML文档
def parse_html(html_string):
return html.fromstring(html_string)
# 使用XPath查询img标签的src属性
def get_image_src(html_string):
tree = parse_html(html_string)
image_src_list = tree.xpath('//img/@src')
return image_src_list
# 获取网页中的图片链接
def get_image_urls(url):
html_string = fetch_html(url)
image_src_list = get_image_src(html_string)
return image_src_list
# 示例:获取百度首页的图片链接
image_urls = get_image_urls('
for url in image_urls:
print(url)
运行以上代码,将会输出百度首页中所有图片的链接地址。
总结
本文介绍了如何使用Python和XPath来获取img标签的src属性,从而获取网页中的图片链接。通过使用lxml库解析HTML文档,并使用XPath查询img标签的src属性,我们可以轻松地从网页中提取出所需的数据。希望本文对你有所帮助!