Python - xpath 爬取方法

194 阅读1分钟

介绍

要使用Python和XPath下载百度上面的图片,可以通过requests库获取网页内容,并使用lxml库解析HTML结构,提取图片URL,然后下载图片。以下是一个简单的实现:

1. 安装必要的库

bash
复制代码
pip install requests lxml

2. Python代码实现

python
复制代码
import requests
from lxml import etree

# 获取百度搜索结果页面
url = 'https://www.baidu.com/s?wd=周杰伦&pn=0'
response = requests.get(url)
html_content = response.text

# 解析页面内容
tree = etree.HTML(html_content)

# 使用XPath提取图片的URL
image_urls = tree.xpath('//img/@src')

# 下载图片
for idx, img_url in enumerate(image_urls):
    if img_url.startswith('http'):  # 确保是完整的URL
        img_response = requests.get(img_url)
        with open(f'jay_chou_image_{idx}.jpg', 'wb') as f:
            f.write(img_response.content)
        print(f"图片 {idx} 下载成功!")

3. XPath语法和使用方式

  • 基本语法//element,选择文档中所有符合条件的元素。
  • 属性选择//element/@attribute,选择元素的属性(如src)。
  • 条件过滤//element[@attribute='value'],选择符合属性条件的元素。
  • 层级选择/parent/child,选择某个元素的子元素。

示例:

  • //img/@src:选择页面中所有<img>标签的src属性。
  • //a[contains(@href, 'jaychou')]:选择所有href属性中包含"jaychou"的链接。