from bs4 import BeautifulSoup

import sys,os,requests,pymongo,time

from lxml import etree

def get_fenlei(url,headers):

"""

获取妹子图的分类链接,并创建相对应的分类文件夹

:param url:

:param headers:

:return:

"""

response = requests.get(url,headers=headers).text

soup = BeautifulSoup(response,'lxml')

fenlei_url = soup.select('#menu-nav > li > a')

list1 = []

print(sys.path)

for i in fenlei_url:

fen_lei_lianjie = i['href']

if ''.join(fen_lei_lianjie).split('/')[3] =='all':

continue

elif ''.join(fen_lei_lianjie).split('/')[3] != '':

fenlei_name = i.get_text()

print(fenlei_name,fen_lei_lianjie,'首页')

get_fenlei_xia(fen_lei_lianjie,fenlei_name)

list1.append(fen_lei_lianjie)

def get_fenlei_xia(fen_lei_lianjie,fenlei_name):

"""

:param fen_lei_lianjie:

:param fenlei_name:

:return:

"""

print('{}{}'.format(fen_lei_lianjie,'<><><><><><>'))

response = requests.get(fen_lei_lianjie,headers=headers).text

html = etree.HTML(response)

fenye_page = html.xpath('/html/body/div[2]/div[1]/div[2]/nav/div/a[4]')

page_list = []

if fenye_page != []:

for i in fenye_page:

page_shu = i.xpath('./text()')[0]

page_url = i.xpath('./@href')[0]

for ia in range(1,int(page_shu)+1):

fenlei_url = '{}/{}/{}/{}/'.format('https://www.mzitu.com/',''.join(page_url).split('/')[3],'page',ia)

page_list.append(fenlei_url)

else:

print('{}'.format('没有数据11111'))

fenye_page2 = html.xpath('//*[@id="comments"]/div/a[3]')

if fenye_page2 != []:

for aa in fenye_page2:

shuliang_shu = aa.xpath('./text()')[0]

shuliang_url = aa.xpath('./@href')[0]

for page in range(1,int(shuliang_shu)+3):

shen_url = '{}{}/{}/{}/{}'.format('https://www.mzitu.com/',''.join(shuliang_url).split('/')[3],'comment-page-',page,'#comments')

page_list.append(shen_url)

else:

print('{}'.format('没有数据222222'))

for shu in page_list:

get_all_url(shu,fenlei_name)

def get_all_url(shu,fenlei_name):

"""

爬取分页下的图片链接

:param shu:

:param fenlei_name:

:return:

"""

print(shu,'<><><><><><><><>')

response = requests.get(shu,headers=headers).text

soup = BeautifulSoup(response,'lxml')

img_src = soup.select('#pins > li > a')

page_list = []

for i in img_src:

img_src = i['href']

page_list.append(img_src)

get_img_gref(img_src,fenlei_name)

def get_img_gref(img_src,fenlei_name):

"""

下载图片

:param img_src:

:param fenlei_name:

:return:

"""

print(img_src,'<><><><><><><><><><><

try:

response = requests.get(img_src,headers=headers)

print(response.status_code,'页面状态码')

html = etree.HTML(response.text)

img_href = html.xpath('//div[2]/div[1]/div[3]/p/a/img/@src')[0]

lei_name = html.xpath('/html/body/div[2]/div[1]/div[2]/span[1]/a/text()')[0]

if fenlei_name == lei_name:

wenjian = 'D:\\web_xiangmu\\biquge_tushu\\妹子图\\' + fenlei_name

if not os.path.exists(wenjian):

os.makedirs(wenjian)

print('{}{}{}'.format('D:\\web_xiangmu\\biquge_tushu\\妹子图\\<<>>分类文件夹创建成功'))

else:

print(print('{}{}{}'.format('D:\\web_xiangmu\\biquge_tushu\\妹子图\\<<>>分类文件夹已存在')))

"""

图片去重

"""

img_name = ''.join(img_href).split('/')[-1]

res = requests.get(img_href, headers=headers)

root_dir = 'D:\\web_xiangmu\\biquge_tushu\\妹子图\\' + fenlei_name

panduan_root_dir = 'D:\\web_xiangmu\\biquge_tushu\妹子图\\{}\\{}'.format(fenlei_name,img_name)

if os.path.exists(panduan_root_dir):

print('{}{}'.format(img_name,'已存在'))

else:

with open(root_dir + "\\" + img_name, 'wb') as f:

f.write(res.content)

f.close()

print(fenlei_name + '---' + img_name + '文件保存成功')

"""

图片去重

"""

else:

return None

except:

print('《《《连接失败》》》')

def main():

return get_fenlei(url,headers)

if __name__ == '__main__':

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',

'Referer': 'https://www.mzitu.com/hot/',

}

url = "https://www.mzitu.com/"

main()

python多线程爬取妹子图网站_python爬取妹子图全站全部图片-可自行添加-线程-进程爬取,图片去重...相关推荐

  1. 用Python爬取顶点小说网站中的《庆余年》思路参考——记一次不成功的抓取

    目的:用python爬虫抓取顶点小说网站中的<庆余年>小说内容个,并保存为txt格式文件. 环境:Win10系统,Anaconda3 + PyCharm, python3.6版本 思路:( ...

  2. python能画k线图吗_python画k线图(一天的k线图怎么画)

    1.大智慧软件在日线窗口的左上角标有主图的公式名称,(如ma sar bbi )等, 如果不是ma指标,请输入ma,回车.2.如果输入ma后还是没有均线,请按 f7 键,弹出 最好能举个例子的.非常感 ...

  3. python 多线程并发怎么还是顺序执行_python thread 并发且顺序运行示例

    python怎么实现用多线程顺序执行 python 的GIL规定每个时刻只能有一个线程访问python虚拟机,所以你要用python的多线程来做计算是很不合算的,但是对于IO密集型的应用,例如网络交互 ...

  4. plc与python之间实现通信的结构框图_Python设计模式 - UML - 通信图(Communication Diagram)...

    简介 通信图表示对象之间的消息往来,是表述时序图中信息交互的另一种UML图,介绍完时序图就要对照学习一下通信图,二者是一体两面的. 通信图和时序图可以相互转换,二者的侧重点不同,通信图侧重哪些对象发送 ...

  5. python自动爬取更新电影网站_Python爬虫之—微信实时爬取电影咨询

    本文将介绍如何使用爬虫在微信对话中实现实时的电影咨询爬取功能,希望和大家一起来分享" 1. 撩妹起源 俗话说的好:少壮不撩妹,长大徒伤悲啊! 说的很对,但是在这个撩妹的时代,要想成功把到妹, ...

  6. python自动爬取更新电影网站_python爬取电影网站信息

    一.爬取前提 1)本地安装了mysql数据库 5.6版本 2)安装了Python 2.7 二.爬取内容 电影名称.电影简介.电影图片.电影下载链接 三.爬取逻辑 1)进入电影网列表页, 针对列表的ht ...

  7. python脚本根据cookies自动登录网站_Python爬虫如何使用Cookies登录网站

    最近搞到了一个学校教务系统可以查询全校成绩的账号,恰逢申请奖学金之际,就想用python写个脚本把年级里的绩点排名给爬下来,可是就在写登录的时候发现还是要处理验证码登录的问题,为了避免麻烦,就没使用类 ...

  8. python雷达图数据_Python怎么画雷达图?Matplotlib数据可视化008:雷达图\极坐标图...

    系列文章链接:[Python菜鸟进阶大神]Matplotlib数据可视化001:基础API汇总&散点图​mp.weixin.qq.com [Python菜鸟进阶大神]Matplotlib数据可 ...

  9. python脚本根据cookies自动登录网站_python模拟登录并且保持cookie的方法详解

    前言 最近在爬行 nosec.org 的数据,看了下需要模拟登录拿到cookie后才能访问想抓的数据,重要的是 nosec.org 的登录页面 form 中有个 authenticity_token ...

最新文章

  1. 程序员注意了:这个微信群可以学英语,而且全程免费
  2. oc-21-class对象
  3. COCOS2D(3) 菜单
  4. IT软件开发 书籍汇总
  5. systemverilog数据类型
  6. 快手用旺旺瓶子做机器人_100品牌入榜,在快手的品牌运营怎么做?|11月快手品牌新势力榜揭晓...
  7. gin ajax 获取请求参数,gin请求参数处理
  8. Linux设备树 .dtb文件,内核使用dtb文件的过程
  9. 软件工程 speedsnail 第二次冲刺1次
  10. html 输出不了php,html不打印输出文本
  11. osm数据下载 python_用Python编写小工具下载OSM路网数据
  12. 俄罗斯大神 lopatkin 毛子 最新 Windows 10 Pro 19041.450 20H1 Release x86-x64 ZH-CN DREY
  13. 迷你迅雷(官方版)不含广告,不用会员,多线程急速
  14. 自动生成员工号c语言,C语言课程设计级.doc
  15. java deff_java – 在配置中添加时出现Spring NoClassDefF...
  16. 容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
  17. POJ 1273 Dinic
  18. the inferior stopped because it triggered an exception
  19. Matlab光纤光栅仿真程序FBG 双FBG
  20. [PS视频][ps从入门到精通82课][mp4/327M]

热门文章

  1. 关于存量和增量的杂谈
  2. node.js毕业设计基于微信小程序的网上购物系统(源码+程序+LW+部署)
  3. 工作中沟通表达能力弱需要如何改善?
  4. 数商云经销商订货管理系统解决方案:订货平台全渠道覆盖,人货场一体化多终端管理
  5. POI+EasyExcel,简单使用
  6. 【微信多开】教你三种方法快速实现,超流弊!
  7. vue 根据属性过滤树结构数据
  8. mysql 可重复读 原理,Mysql可重复读原理
  9. scrapy抓取知乎话题v0.1
  10. 用DIV+CSS技术设计的鲜花主题网站(web前端网页制作课作业)