python 爬取图集谷妹子图片,按自己喜好抓取一页图片,有兴趣二次开发 抓全站

python 爬取图集谷妹子图片,按自己喜好抓取一页图片,有兴趣二次开发 抓全站#-*-coding:utf-8-*-importrequests,time,osfromlxmlimportetreefromurllibimportrequest

大家好,又见面了,我是你们的朋友全栈君。

# -*- coding: utf-8 -*- import requests, time, os from lxml import etree from urllib import request name_url = {} # 创建一个字典 def sort(): req = requests.get('https://www.tujigu.com/') # 首页 req.encoding = 'utf-8' # 中文出现乱码,调整编码 req_xp = etree.HTML(req.text) # 装换为xp,text是为了变成字符串形式,不然会报错 text_list = req_xp.xpath('//*[@class="menu"]/li/a/text()|//*[@id="tag_ul"]/li/a/text()') # 读取分类名 href_list = req_xp.xpath('//*[@class="menu"]/li/a/@href|//*[@id="tag_ul"]/li/a/@href') # 获取网址 for href, text in zip(href_list, text_list): name_url[text] = href # 已分类名做为key,网址作为值 return text_list # 返回分类名列表,好为后面打印分类名 def dow(url, name): if not os.path.exists("图集谷"): # 检查并创建文件夹,强迫症~~~ os.mkdir('图集谷') if not os.path.exists("图集谷/{}".format(name)): # 同上,创建分类 os.mkdir('图集谷/{}'.format(name)) atlas = requests.get(url) # get你选择的网址 atlas.encoding = 'utf-8' # 同上,乱码问题 atlas_xp = etree.HTML(atlas.text) text_list = atlas_xp.xpath('//*[@class="biaoti"]/a/text()') # 获取图集名 href_list = atlas_xp.xpath('//*[@class="biaoti"]/a/@href') for text, href in zip(text_list, href_list): req = requests.get(href) req.encoding = 'utf-8' req_xp1 = etree.HTML(req.text) src_list = req_xp1.xpath('//*[@class="content"]/img/@src') num = 1 # 创建图片名,美观 # 下面是为了删除一些图集中包含了文件夹不能创建的符号 text = text.replace('\n', '').replace('/', '').replace('\\', '').replace(':', '').replace('*', '').replace('"', '').replace( '<', '').replace('>', '').replace('|', '').replace('?', '') if not os.path.exists("图集谷/{}/{}".format(name, text)): # 检测此图集是否下载过 os.mkdir("图集谷/{}/{}".format(name, text)) for src in src_list: request.urlretrieve(src, "图集谷/{}/{}/{}.jpg".format(name, text, num)) # 保存图片 num += 1 print('{}-------------成功下载'.format(text)) else: print('{}--------------内容已下载'.format(text)) def get(): while 1: text_list = sort() # 从首页获取分类信息和url i = 1 # 序号 for text in text_list[2:-1]: # 从2到-1是为了去除没用的分类 print('%02d.{}'.format(text) % i) # 打印分类信息 i += 1 opt = input('输入您要爬取的内容(首页为默认)>>>>> ') if not opt.isdigit(): # 判断输入内容 print('傻X输入中文懂么') time.sleep(3) continue opt = int(opt) if not 0 < opt < len(text_list) - 3: # 判断输入内容 print('输入范围错误') time.sleep(3) continue opt += 1 # 以为删除了首页,所以+1才能正确选择分类 url = name_url[text_list[opt]] # 获取你选择的地址 name = text_list[opt] # 分类的名字,好创建一个文件夹放入 print('{}====开始爬取'.format(name)) dow(url, name) # 开始运行下载程序 input('爬取完成,按下回车重新开始') if __name__ == '__main__': get() # 开始运行主程序

安装好库,选择自己喜好,就可以了。

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

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

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

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

(0)


相关推荐

  • pandas用法-全网最详细教程

    pandas用法-全网最详细教程一、生成数据表1、首先导入pandas库,一般都会用到numpy库,所以我们先导入备用:importnumpyasnpimportpandasaspd2、导入CSV或者xlsx文件:df=pd.DataFrame(pd.read_csv(‘name.csv’,header=1))df=pd.DataFrame(pd.read_excel(‘nam…

  • drone无人机操作_无人机怎么平稳降落

    drone无人机操作_无人机怎么平稳降落本文基于dronekit在实体无人机上实现最基本的起飞和降落,测试了这一过程中速度的变化以及起落位置的偏移。

  • Android Fragment用法之给Activity创建事件回调

    在某些案例中,可能需要Fragment与Activity共享事件。在Fragment内部定义一个回调接口是一个好方法,并且规定由持有它的Activity实现这个回调方法。当Activity通过接口接受回调时,它能在必要时与布局中的其他Fragment共享信息。例如,如果一个音乐播放器的应用程序在一个Activity中有两个Fragment—一个用来显示歌曲列表(Fragment A),另一

  • docker 修改容器时间_jenkins docker持续集成

    docker 修改容器时间_jenkins docker持续集成前言用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间查看时间查看系统时间date-R进入docker容器内部,查看容器时间dockere

  • 算数平均数、中位数、众数和几何平均数[通俗易懂]

    算数平均数、中位数、众数和几何平均数[通俗易懂]文章目录算数平均数、中位数、众数和几何平均数算数平均数、中位数、众数和几何平均数统计数据时经常用到的几种数的比较:算数平均数中位数众数几何平均数英文名ArithmeticmeanMedianModeGeometricMean别称均值中值定义n个变量的和除以n。中位数是按顺序排列的一组数据中居于中间位置的数,即在这组数据中,有一半的…

  • python开发mbus程序_MBUS 和MODBUS 什么关系啊

    python开发mbus程序_MBUS 和MODBUS 什么关系啊展开全部MBUS和MODBUS之间的关系:M-Bus是针对仪表(主要是热表)的单线制通讯总线标准,对于物理层62616964757a686964616fe58685e5aeb931333431343666、数据链路层、应用层和网络层都有严格的规定。Modbus则对物理层没有过多限制,在RS-232、RS-485、TCP/IP、光纤、红外等任意物理层上都可以跑,基本上来说,Modbus只包含应用层…

    2022年10月15日

发表回复

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

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