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' ...
随机推荐
- js学习之原生js实现懒加载
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- rabbit基本原理 转
https://www.cnblogs.com/jun-ma/p/4840869.html
- GarageBand mac怎么剪切音频片段? GarageBand mac使用教程
garageband mac智能控制轻松修饰声音资源库中任何乐器的音色,让你在世界各地都可以开始你的创意,让世界听到你的歌声.GarageBand mac剪切音频片段的操作小伙伴们也是需要掌握的,Ga ...
- GUI学习之八——QToolButton的学习总结
QToolButton提供一个快速的访问按钮,通常在工具栏内使用,一般不显示文本标签而显示图标. 一.按钮的样式风格设置 可以按照下面的风格对按钮进行样式设置 从左到右依次是仅显示图标.仅显示文字.图 ...
- HTML5-桌面提醒功能
window.webkitNotifications.requestPermission(); statue = window.webkitNotifications.checkPermission( ...
- amazeui分页
<link rel="stylesheet" href="../../static/css/manage/amazeui.min.css" /> & ...
- Flask 学习目录
Flask 学习目录 Flask 的学习过程是一个了解如何从单个模块搭建一个 Web 框架的过程. Python.Flask 的安装和设置 简单的 Hello World 程序 使用 Jinjia2 ...
- MySql添加远程超级管理员用户
可以通过发出GRANT语句增加新用户:首先在数据库本机上用ROOT用户登录上MySql,然后运行命令: mysql>GRANT ALL PRIVILEGES ON *.* TO admin'@' ...
- go基本使用方法
一,变量 var:声明变: var 变量名 数据类型 :同时还需要指定数据的类型 var 变量名 = 值 : 声明变量,根据变量值判断变量类型 := :省略var,直接可以(变量名:= 值), ...
- (转)MySql中监视增删改查和查看日志记录
转载地址为:http://blog.51cto.com/hades02/1641652 首先在命令行输入 show global variables like '%general%' ,然后出现下面的 ...