系统练习requests xpath提取图片并保存本地
'''
requests库请求目标网址
xpath提取网页的图片地址
面向函数编程
'''
#导入第三方库
import requests
from lxml import etree
#定制请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/64.0.3282.140 Safari/537.36 Edge/18.17763'}
def get_html(url):
#目标网页如果以 .text()方式输出文本,则出现乱码,故采用UTF-8方式输出网页文本
html = requests.get(url,headers = headers).content.decode('utf-8')
return html
def paser_html(html):
#新建空列表,用于存放提取图片的url地址
images_url = []
#xpath库解析网页,提取图片地址
e = etree.HTML(html)
#xpath解析语法
images_list = e.xpath('//li[@class="image-box"]/a/img/@data-echo')
#遍历输出图片地址
for image in images_list:
images_url.append(image)
return images_url
#定义保存图片函数
def save_image(images_url):
#循环遍历图片地址
for image_url in images_url:
#请求每一个url
r = requests.get(image_url,headers = headers)
#定义每一个图片的名称
file_name = image_url.split('/')[-1]
#保存图片
with open(file_name,'wb') as f:
f.write(r.content)
#定义主函数
def main():
url = 'https://www.yeitu.com/meinv/xinggan/'
html = get_html(url)
images_url = paser_html(html)
save_image(images_url)
main()