大家好,又见面了,我是你们的朋友全栈君。
相信大家已经迫不及待地想想爬取自己想要的写真集了,那么我话不多说,直接上代码。
代码语言:javascript复制# 导入包
import os, time, requests
from lxml import etree
# 定义请求头
headers = {
'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 UOS'
}
# 传入数据,例如'ttps://www.tujigu.net/a/33527'
# Num就取值33527
# Page_Num取值该写真集的页数
Num = input('enter the Num:')
Pages_Num = int(input('enter the Page_Num:')) 1
# 创建图片url列表
img_src_list = []
# 创建url列表,并将写真集首页网页url写入网页列表中
url_header = 'https://www.tujigu.net/a/'
url_head = url_header str(Num) '/'
urls = [url_head]
time.sleep(1) # 防止服务器封IP
# 在网页列表中写入其他页面url
for a in range(2, int(Pages_Num)):
url_other = url_head str(a) '.html'
urls.append(url_other)
# 获取所有图片url,并写入图片url列表中
for url in urls:
res = requests.get(url, headers=headers)
html = etree.HTML(res.text)
img_original = html.xpath('//div[@class="content"]/img/@src')
for img_src in img_original:
img_src_list.append(img_src)
time.sleep(1)
# 创建文件夹
res = requests.get(url=url_head, headers=headers)
res.encoding = 'utf-8'
html = etree.HTML(res.text)
img_alt = html.xpath('//div[@class="content"]/img/@alt')[0]
path_name = '/data/home/liu/Pictures/' str(img_alt) #此处引号中地址可改为其他地址
if not os.path.exists(path_name):
os.mkdir(path_name)
path = path_name '/'
# 下载图片
for src in img_src_list:
img_data = requests.get(src, headers=headers).content
name = src.split('/')[-1]
with open(path name, 'wb') as f:
print(f'正在为您下载图片:{name}')
f.write(img_data)
f.close()
time.sleep(1)
print('下载完成!!!')
代码中的path_name,由于我编写这个爬虫的时候用的是Linux系统,所以文件目录不一样,各位用windows系统的小伙伴儿们请自行修改。
这个爬虫,在我编写完成后,感觉有一点儿繁琐,所以,之后我会对这个代码进行修改。让我们期待下一个更加优秀的爬虫吧>_<
感谢大家的阅读,如果大家觉得还可以的话,可以酌情打赏一下(可怜巴巴…)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157810.html原文链接:https://javaforall.cn