图集谷-写真集-爬虫-1.0[通俗易懂]

图集谷-写真集-爬虫-1.0[通俗易懂]图集谷写真集爬虫

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 相信大家已经迫不及待地想想爬取自己想要的写真集了,那么我话不多说,直接上代码。

# 导入包
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系统的小伙伴儿们请自行修改。

这个爬虫,在我编写完成后,感觉有一点儿繁琐,所以,之后我会对这个代码进行修改。让我们期待下一个更加优秀的爬虫吧>_<

感谢大家的阅读,如果大家觉得还可以的话,可以酌情打赏一下(可怜巴巴…)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157810.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 主题:Windows系统服务器磁盘挂载

    主题:Windows系统服务器磁盘挂载

  • java中的Set集合

    java中的Set集合概述Set集合类似于一个罐子,程序可以依次把多个对象“丢进”Set集合,而Set集合通常不能记住元素的添加顺序。实际上Set就是Collection只是行为略有不同(Set不允许包含重复元素)。Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。HashSet类HashSet是Set接口的典型实现,…

  • 计算机网络面试题总结

    计算机网络面试题总结一OSI与TCP/IP各层的结构与功能,都有哪些协议五层协议的体系结构1应用层域名系统HTTP协议2运输层运输层主要使用以下两种协议UDP的主要特点TCP的主要特点3网络层4数据链路层5物理层总结一下二TCP三次握手和四次挥手(面试常客)为什么要三次握手为什么要传回SYN传了SYN,为啥还要传ACK为什么要四次挥手…

  • 大数据技术的发展趋势

    大数据技术的发展趋势英国牛津大学教授维克托·迈尔-舍恩伯格在其所撰写的《大数据时代》中表述,大数据时代是“已经发生的未来”,而在这个已经发生的未来里,没有旁观者。作为时代发生的必然产物,大数据正加速渗透至我们的日常生活,正完成对各传统领域的颠覆。本文从大数据时代的特点出发,为读者介绍目前的大数据技术的发展趋势以及大数据的生态体系。大数据时代的特点和市场规模大数据时代两个特点。第一,大数据技术以开源为主,迄今为止,尚未形成绝对技术垄断,即便是IBM、甲骨文等行业巨擘,也同样是集成了开源技术和该公司已有产品而已。开源技

  • How do I obtain a Digital Certificate from my Certificate Authority (CA)?

    How do I obtain a Digital Certificate from my Certificate Authority (CA)?

  • 四十一、SPSS中的t检验和卡方检验[通俗易懂]

    四十一、SPSS中的t检验和卡方检验[通俗易懂]@Author:ByRunsen@Date:2020/5/14在2020年一月初,也是我大三上的寒假,我开始写书,为什么呢?因为化工原理和化工热力学挂了,我需要重拾自己的自信。对于一个大学三年,每天往死里干的人,竟然挂了两科。虽然,我化工专业已经陷入了绝境,大学我主要学习日语,Python,Java和一系列数据分析软件。所以本专栏数据分析将使用Excel,Powerbi,Python,R,Sql,SPSS,stata以及Tableau,后面还会补充BI。第五章应该是二月份完成的。文章目

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号