Python爬虫-萌妹子图片
最近发现一个可以看图的地方,一张张翻有点累,毕竟只有一只手(难道鼠标还能两只手翻?)。能不能下到电脑上看呢,毕竟不用等网速,还可以预览多张,总之很方便,想怎么就怎么,是吧?
刚好这几天在学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爬虫-萌妹子图片的更多相关文章
- Python爬虫下载美女图片(不同网站不同方法)
声明:以下代码,Python版本3.6完美运行 一.思路介绍 不同的图片网站设有不同的反爬虫机制,根据具体网站采取对应的方法 1. 浏览器浏览分析地址变化规律 2. Python测试类获取网页内容,从 ...
- 如何用Python爬虫实现百度图片自动下载?
Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或 ...
- Python爬虫之网页图片抓取
一.引入 这段时间一直在学习Python的东西,以前就听说Python爬虫多厉害,正好现在学到这里,跟着小甲鱼的Python视频写了一个爬虫程序,能实现简单的网页图片下载. 二.代码 __author ...
- python爬虫获取百度图片(没有精华,只为娱乐)
python3.7,爬虫技术,获取百度图片资源,msg为查询内容,cnt为查询的页数,大家快点来爬起来.注:现在只能爬取到百度的小图片,以后有大图片的方法,我会陆续发贴. #!/usr/bin/env ...
- Python 爬虫之下载图片
from urllib import request import json #---------获取网页源代码-------------- def getHtml(url): response=re ...
- 【Python爬虫实战】 图片爬虫-淘宝图片爬虫--千图网图片爬虫
所谓图片爬虫,就是从互联网中自动把对方服务器上的图片爬下来的爬虫程序.有些图片是直接在html文件里面,有些是隐藏在JS文件中,在html文件中只需要我们分析源码就能得到如果是隐藏在JS文件中,那么就 ...
- python爬虫 分页获取图片并下载
--刚接触python2天,想高速上手,就写了个爬虫,写完之后,成就感暴增,用起来顺手多了. 1.源代码 #coding=utf-8 import urllib import re class Pag ...
- Python 爬虫学习 网页图片下载
使用正则表达式匹配 # coding:utf-8 import re import urllib def get_content(url): """ Evilxr, &q ...
- python爬虫requests 下载图片
import requests # 这是一个图片的url url = 'http://yun.itheima.com/Upload/Images/20170614/594106ee6ace5.jpg' ...
随机推荐
- 现代编译原理——第六章:中间树 IR Tree 含源码
转自: http://www.cnblogs.com/BlackWalnut/p/4559717.html 这一章,就虎书而言,理论知识点是及其少的,就介绍了为什么要有一个中间表示树.看下面这张图就能 ...
- NOIP2018游记(划掉) 滚粗记
Day0 早上摸鱼~, 打几个板子就颓废 中午出发, 在火车上颓元气+睡觉. 到了宾馆发现yhx已经帮我们拿了袋子和狗牌,于是上楼欢乐地搓起了六家统, 一直搓到10点钟才回自己房间. 有六家统就有快乐 ...
- 3200 [HNOI2009]有趣的数列
题面 dalao们都说这是一题简单的卡特兰数,画一画就出来了 emmmmm…… 讲讲怎么分解质因数来算组合数 先打个表 void prim(){ ex[]=ex[]=; ;i<=*n;i++){ ...
- 201621123002《java程序设计》第九周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 //功能需求:将所有大于5的生成一个新的List对象 List lis ...
- linux RCU机制
参考资料: https://www.cnblogs.com/qcloud1001/p/7755331.html https://www.cnblogs.com/chaozhu/p/6265740.ht ...
- 印度视觉设计师Rishab平面设计作品,简直太美了!
来自印度的视觉设计师Rishab Jindal(@iamrishabjindal) 你别以为仅仅是视觉上吸引你眼球. 其实融入和宗教和z哲学. 你慢慢品味一下. 这张有点意思 有一种末日丧尸围城的氛围 ...
- Email接收验证码,以实现登录/注册/修改密码
要求 1)实现Email形式的注册功能和相应的登录功能:2)实现忘记密码时的密码找回功能:3)存在数据库中的密码不能以明文形式存放,即建议在浏览器端发送请求前,调用js代码对用户的密码做md5加密 分 ...
- 项目管理 - PM、 SRS、SOW简介及范例
PM在一个IT项目中的主要管理任务 http://blog.csdn.net/eaglezhang/article/details/1717171 计算机软件需求说明编制指南 http://blog. ...
- C++ 使用命名规范
刚开始正式学习C++, 之前写了一个C++ 的小程序,但是并没有注意命名规范之类的.这一次重写一个类似的程序,再加上这几天学习 c++Prime(发现好喜欢这本书.虽然看的很慢,每一小节都感是满满的干 ...
- hql- 使用like的小坑①
like '%_test_' 要把反斜杠进行转义like '%\_test\_'