大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
尝试了一下用xpath爬取图集谷上面的美女图片,这次选择的是阿朱小姐姐,下面详细介绍如何爬取该网站中阿朱小姐姐的全部套图。
网址:https://www.tujigu.com/t/437/
页面长这样:
可以看到里面有很多套图,所以这个程序的思路就是先从首页爬取所有套图的地址,然后再从套图中获取每一张图片的地址,具体程序如下:
import requests
from lxml import etree
import os
# 创建一个文件夹用来存图
if not os.path.exists('./azhutaotuLibs'):
os.mkdir('./azhutaotuLibs')
# UA伪装
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
url = 'https://www.tujigu.com/t/437/'
# 爬取首页信息
page_text = requests.get(url=url, headers=headers).text
# 从首页信息中解析出每个套图的地址
tree = etree.HTML(page_text)
taotu_list = tree.xpath('//div[@class="hezi"]/ul/li')
# 创建一个列表存储套图地址
all_taotu_adress = []
# 下面解析出的地址是每个套图首页的地址,但不是完整的地址
for li in taotu_list:
taotu_adress = li.xpath('./a/@href')[0]
all_taotu_adress.append(taotu_adress)
# 每个套图第二页往后的地址无法从首页中解析,因此需要手动进行拼接
taotu_fy = taotu_adress + '%d.html'
# 根据经验每个套图最多不超过20页,因此range的范围写到21
for pagenum in range(1, 21):
taotu_ok = format(taotu_fy % pagenum)
all_taotu_adress.append(taotu_ok)
# 获取每一张图片的地址
for key in all_taotu_adress:
new_url = key
img_page = requests.get(url=new_url, headers=headers).text
new_tree = etree.HTML(img_page)
detail_page = new_tree.xpath('//div[@class="content"]/img')
for detail in detail_page:
img_src = detail.xpath('./@src')[0]
img_name = detail.xpath('./@alt')[0]+'.jpg'
img_name = img_name.encode('iso-8859-1').decode('utf-8')
img_data = requests.get(url=img_src, headers=headers).content
img_path = './azhutaotuLibs/' + img_name
with open(img_path, 'wb') as fp:
fp.write(img_data)
print(img_name, '下载成功')
因为阿朱小姐姐的套图一共就两页所以我懒得做分页了,爬取第二页直接换url就行
第二页地址:https://www.tujigu.com/t/437/index_1.html
全部爬取完了,东西还挺多的
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157839.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...