图集谷-写真集-爬虫-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系统的小伙伴儿们请自行修改。

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

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux15:TCP端口状态说明「建议收藏」

    linux15:TCP端口状态说明「建议收藏」TCP状态转移要点TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TIME_WAIT。1、LISTENING状态FTP服务启动后首先处于监听(LISTENING)状态。2、ESTABLISHED状态ESTABLISH

    2022年8月11日
    6
  • 安装错误 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 解决办法「建议收藏」

    安装错误 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 解决办法「建议收藏」安装时提示错误:Failure[INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]是AndroidManifest.xml文件配置错误,有两种情况:1、Activity路径前面没有加点。2、taskAffinity属性前面没有加点。

    2025年5月27日
    2
  • eureka 集群失败的原因_Eureka集群的那些坑

    eureka 集群失败的原因_Eureka集群的那些坑今天遇到一个Eureka集群的一个坑。问题现场类似是这样的:两台Eureka组成的服务注册中心集群,两台服务提供方server1、server2,两个服务调用方client1、client2。正常的情况下:client1和client2通过服务中心获取的服务提供方的注册的元数据信息,然后本地缓存调用server2、server1的服务API是没问题的。调用server的api服务时采用的Feign…

    2022年5月8日
    181
  • HDU 4828 (卡特兰数+逆)

    HDU 4828 (卡特兰数+逆)

    2022年1月1日
    53
  • ajax跨域问题以及解决方案_js跨域请求的三种方法

    ajax跨域问题以及解决方案_js跨域请求的三种方法出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)AJAX跨域请求下面简单模拟一个场景—–>>前端有.

    2022年8月24日
    7
  • 指派问题匈牙利算法例题_匈牙利算法matlab代码

    指派问题匈牙利算法例题_匈牙利算法matlab代码问题描述:在生活中经常遇到这样的问题,某单位需完成n项任务,恰好有n个人可承担这些任务。由于每人的专长不同,各人完成任务不同(或所费时间),效率也不同。于是产生应指派哪个人去完成哪项任务,使完成n项

    2022年8月3日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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