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属性,我们可以轻松地从网页中提取出所需的数据。希望本文对你有所帮助!