介绍
要使用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"的链接。