正 则 , b s 4 等 方 式 都 不 错 , 不 过 还 有 个 x p a t h 呢 ! 正则,bs4等方式都不错,不过还有个xpath呢! 正则,bs4等方式都不错,不过还有个xpath呢!
效
果
\color{Red}效果
效果
注 意 我 们 取 的 图 片 a l t 属 性 是 中 文 乱 码 , 一 般 使 用 这 种 方 式 解 码 注意我们取的图片alt属性是中文乱码,一般使用这种方式解码 注意我们取的图片alt属性是中文乱码,一般使用这种方式解码
alt = li.xpath('./a/img/@alt')[0]+'.jpg'
alt = alt.encode('iso-8859-1').decode('gbk') #常用的解码中文方式
包 括 创 建 文 件 夹 , 写 入 文 件 包括创建文件夹,写入文件 包括创建文件夹,写入文件
if not os.path.exists('D:\爬虫图片\彼岸图网妹子图'): #如果不存在就创建文件夹
os.mkdir('D:\爬虫图片\彼岸图网妹子图')
with open(img_path,'wb') as f: #写入文件
f.write(img_data)
完整代码
from lxml import etree
import requests
import os
url = 'http://pic.netbian.com/4kmeinv/'
headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"}
page_text = requests.get(url=url,headers = headers).text #获取网页内容
tree = etree.HTML(page_text) #使用xpath的.html方法解析
li_list = tree.xpath('//ul[@class="clearfix"]/li') #定位到所有li标签
if not os.path.exists('D:\爬虫图片\彼岸图网妹子图'): #如果不存在就创建文件夹
os.mkdir('D:\爬虫图片\彼岸图网妹子图')
for li in li_list: #遍历列表
srrc = li.xpath('./a/img/@src')[0] #取src
src = 'http://pic.netbian.com/'+srrc #加上前缀网址
alt = li.xpath('./a/img/@alt')[0]+'.jpg'
alt = alt.encode('iso-8859-1').decode('gbk') #常用的解码中文方式
img_data = requests.get(url=src,headers=headers).content #取内容
img_path = 'D://爬虫图片//彼岸图网妹子图//'+alt
with open(img_path,'wb') as f: #写入文件
f.write(img_data)