【爬虫】request+lxml爬取网站图片

"""
    1.目标 数据爬取
    2.请求 向服务器发送
    3.数据 所需数据
"""
import os
import requests
from lxml import etree

# 目标:爬取的网站地址
url = 'https://www.xxxx.com/g/2168'
# 请求:网络请求 工具箱、工具、帮助我们请求
res = requests.get(url)
# 调用HTML类对HTML文本进行初始化,成功构造XPath解析对象,简单来说将返回的文本转换成可以用xpath来定位元素
data = etree.HTML(res.text)
# 对返回的对象使用xpath定位,这里的xpath是一个方法
li_list = data.xpath('//div[@id="J_liveCardList"]/ul/li')
# 爬取的数据保存的文件地址,如果不存在创建一个
if not os.path.exists('../test_data'):
    os.mkdir('../test_data')
# 数据
for li in li_list:
    # 循环//div[@id="J_liveCardList"]/ul/li  定位到的元素对象,在元素的当前节点上继续定位
    # 类似//div[@id="J_liveCardList"]/ul/li/a/img/ 写法 @后面接元素的属性名获取属性值
    img_url = li.xpath('./a/img/@data-original')[0]
    # 对爬取的图片路径切割去掉url后面的参数
    img = str(img_url).split('?')[0]
    # 获取图片的名称保存为jpg格式,定位理解同上
    img_name = li.xpath('./a/img/@alt')[0]+'.jpg'
    # 返送图片地址请求获取返回
    img_data = requests.get(url=img).content
    img_path = '../test_data/' + img_name
    with open(img_path, 'wb') as fp:
        fp.write(img_data)
        print(img_name, '下载成功!!')

xpath方法语法介绍地址:https://blog.csdn.net/pdcfighting/article/details/114735648

posted on 2022-04-19 22:05  亡心忘  阅读(161)  评论(0)    收藏  举报