【爬虫】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
浙公网安备 33010602011771号