最近发现一个可以看图的地方,一张张翻有点累,毕竟只有一只手(难道鼠标还能两只手翻?)。能不能下到电脑上看呢,毕竟不用等网速,还可以预览多张,总之很方便,想怎么就怎么,是吧?

刚好这几天在学python,刚好拿来试试手。

代码注释很详细就不做解释了。代码比较丑,有建议随便提,反正我也不改。

import requests as re
from bs4 import BeautifulSoup
import os
#import threading #定义一个爬去图片的类
class Spider:
# 传入图片地址,文件名,保存单张图片
def saveImg(self, imageURL, fileName):
u = re.get(imageURL)
data = u.content
f = open(fileName, 'wb')
f.write(data)
f.close() def saveBrief(self, content, name):
fileName = name + "/" + name + ".txt"
f = open(fileName, "w+")
f.write(content.encode('utf-8'))
#创建新目录
def mkdir(self,path):
path = path.strip()
# 判断路径是否存在
# 存在 True
# 不存在 False
isExists=os.path.exists(path)
# 判断结果
if not isExists:
# 如果不存在则创建目录
# 创建目录操作函数
os.makedirs(path)
return True
else:
# 如果目录存在则不创建,并提示目录已存在
return False
#下载每期的图片,并放入以标题为名字的目录中
def GetDeatilPage(self, url,encodeing="utf-8",folder=""):
res = re.get(url)
res.encoding=encodeing
soup = BeautifulSoup(res.text, "html.parser")
imgs = soup.select("article.article-content > p > img")#根据元素匹配所有的图片地址
if(len(imgs)>0):
#检查目录是否存在,不存在就创建
if(folder!=""):
folder=folder+"\\"
self.mkdir(folder+imgs[0].attrs.get("alt"))#创建目录
i=1
for img in imgs:
imgurl = img.attrs.get("src")#获取图片路径
self.saveImg(imgurl, img.attrs.get("alt")+"\\"+str(i)+".jpg")#保存图片
i=i+1
#获取页面上所有的期数连接
def GetAllPageUrl(self,url):
res=re.get(url)
soup=BeautifulSoup(res.text, "html.parser")
urls=soup.select("div.excerpts > article.excerpt > a.focus")
return [a.attrs.get('href') for a in urls] def loop(i):
spider=Spider()
urls=spider.GetAllPageUrl("http://www.52rkl.cn/mengmeizi/list_51_"+str(i)+".html")
for url in urls:
spider.GetDeatilPage(url) for i in range(1,25):
loop(i)
# threading.Thread(target=loop,args=(i),).start()
# threading.Thread(target=loop,args=((i)*3+1),).start()
# threading.Thread(target=loop,args=((i+1)*3+1,)).start()
# threading.Thread(target=loop,args=((i+2)*3+1),).start()
# threading.Thread(target=loop,args=((i+3)*3+1),).start()
# threading.Thread(target=loop,args=((i+4)*3+1),).start()
# threading.Thread(target=loop,args=((i+5)*3+1),).start()
# threading.Thread(target=loop,args=((i+6)*3+1),).start()
print("成功")

本来想实现多线程的,奈何按照网上说的都无效,还是单线程下载。知道怎么实现的还望不吝赐教。

git:https://github.com/dashenxian/ImageSpider

刚开始python学习。

Python爬虫-萌妹子图片的更多相关文章

  1. Python爬虫下载美女图片(不同网站不同方法)

    声明:以下代码,Python版本3.6完美运行 一.思路介绍 不同的图片网站设有不同的反爬虫机制,根据具体网站采取对应的方法 1. 浏览器浏览分析地址变化规律 2. Python测试类获取网页内容,从 ...

  2. 如何用Python爬虫实现百度图片自动下载?

    Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或 ...

  3. Python爬虫之网页图片抓取

    一.引入 这段时间一直在学习Python的东西,以前就听说Python爬虫多厉害,正好现在学到这里,跟着小甲鱼的Python视频写了一个爬虫程序,能实现简单的网页图片下载. 二.代码 __author ...

  4. python爬虫获取百度图片(没有精华,只为娱乐)

    python3.7,爬虫技术,获取百度图片资源,msg为查询内容,cnt为查询的页数,大家快点来爬起来.注:现在只能爬取到百度的小图片,以后有大图片的方法,我会陆续发贴. #!/usr/bin/env ...

  5. Python 爬虫之下载图片

    from urllib import request import json #---------获取网页源代码-------------- def getHtml(url): response=re ...

  6. 【Python爬虫实战】 图片爬虫-淘宝图片爬虫--千图网图片爬虫

    所谓图片爬虫,就是从互联网中自动把对方服务器上的图片爬下来的爬虫程序.有些图片是直接在html文件里面,有些是隐藏在JS文件中,在html文件中只需要我们分析源码就能得到如果是隐藏在JS文件中,那么就 ...

  7. python爬虫 分页获取图片并下载

    --刚接触python2天,想高速上手,就写了个爬虫,写完之后,成就感暴增,用起来顺手多了. 1.源代码 #coding=utf-8 import urllib import re class Pag ...

  8. Python 爬虫学习 网页图片下载

    使用正则表达式匹配 # coding:utf-8 import re import urllib def get_content(url): """ Evilxr, &q ...

  9. python爬虫requests 下载图片

    import requests # 这是一个图片的url url = 'http://yun.itheima.com/Upload/Images/20170614/594106ee6ace5.jpg' ...

随机推荐

  1. dskinlite(uieasy mfc界面库)使用记录4:绘制动态元素(listbox)

    效果图: XML代码: 299行的headerctrl只针对listview有效,这里是listbox,忽略 wirelessName,wirelessStatus,wirelessSignal会通过 ...

  2. dskinlite(uieasy mfc界面库)使用记录2:绘制动态元素(按钮控件绘制元素动态控制,改变图片和文字)

    效果图:这4个分别是按钮按下后4种状态的效果 第88行是显示默认的按钮文字,没有id,SetWindowText改的就是它了 第87行是左边的图片,id是ico,可以通过程序控制 第89行是蓝色的文字 ...

  3. 源码分析之groupcache之consistenthash

    很多时候读开源的库就是为自己准备大量的代码库,优秀开源项目代码质量比绝大部分人的代理质量都要高. 依赖的库 ```import ( "hash/crc32" "sort& ...

  4. LoadRunner如何监控Linux下的系统资源

    1. 安装rsh,rsh-server [root@localhost /]# yum install rsh [root@localhost /]# yum install rsh-server 或 ...

  5. 真机测试没有问题,but上线后安装在手机上crash。也有无法打包的情况。

    图片格式不对,把16位or p3图片改为8位sRGB图片  9.0以前不支持 解决步骤: a.找到导出项目的ipa文件修改后缀名.ipa为.zip后直接解压该文件: b.找到出问题的图片,直接把该图片 ...

  6. 实验十一 团队作业7---团队项目设计完善&编码测试

    团队软件项目设计完善: 任务1:根据OOD详细设计工作要点,修改完善团队项目系统设计说明书和详细设计说明. <软件设计方案说明书>:https://github.com/cy0325/Te ...

  7. pytest框架之fixture详细使用

    本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pytest框架,一边学习一边记录,和大家分享,话不多说,那就先从p ...

  8. Spring Boot的应用启动器

    Spring Boot应用启动器基本的一共有44种,具体如下: 1)spring-boot-starter 这是Spring Boot的核心启动器,包含了自动配置.日志和YAML. 2)spring- ...

  9. 用Python对html进行编码

    原地址:https://stackoverflow.com/questions/275174/how-do-i-perform-html-decoding-encoding-using-python- ...

  10. LinkeList 特有方法

    LinkedList:特有方法:addFirst();addLast();添加元素到集合,添加到头尾,getFirst();getLast();获取元素,但不删除元素.如果集合中没有元素,会出现NoS ...