爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

福利来了  校花网 ,首先说为什么要爬这个网站呢,第一这个网站简单爬起来容易,不会受到打击,第二呢 你懂得...。


1.第一步,需要下载爬虫所用

Requests模块,当安装Python的时候会自动安装上pip管理包工具,要是没有的话自己下载一下,地址

1.1  第二步打开的cmd 运行 pip install requests 命令,然后回车,会自动下载。

  

2.打开你的Pycharm,引入你的requests包,requests模块是可以模拟发送请求的一个模块,也有其他模块比如:urllib、httplib、Queue...等等。

另外 re 是正则模块,还有 os 对文件操作模块都引用上。

  

3.然后定义一个方法SaveImage(),用户保存获取图片的方法。

3.1 由于不可能保存一张图片,所以图片url和name都写成参数形式。

3.2 with open as 关键字是对操作文件的一种封装,包括异常处理和释放资源都有 。

3.3  write()  是写入二进制,所以 response.content 返回的是二进制。

4. 上面说到不可能只保存一直图片,所以要定义一个方法GetImage()获取当前页面所有图片的url和name。

4.1 首页先Get请求校花网其中一个导航栏中的url。

4.2 然后设置编码格式,可以右键在源代码中的 charset 查看,这里是 "gbk" 编码格式。

4.3 然后使用正则的 findall()方法,参数是一个正则和一个网页源代码,用 page.text可以获取到,返回一个字典类型。

4.5 然后循环打印 url和name,并调用上面写的保存图片的SaveImage()存起来。

5.到目前为止可以获取到整页的图片和名字了,那么有许多页怎么办呢,很简单....

5.1 为什么要把第一页的url拿出来呢,因为是这个网站的第一页和其他页的url规则不一样,所以单独处理一下。

5.2 然后for循环,循环 range(),这里 1,13 代表从1开始,到13前的一个数结束。

5.3 在循环的过程中调用获取GetImage()方法.

5.4 最后一步,每次循环的时候 使用 %s 占位符 改变翻页的url。然后Ctrl+Shift+F10 完成!

6. 然后把这些零碎的代码串起来就可以了。

  

 import requests,re,os

 #文件夹名称
FileName= 'download'
#保存图片
def SaveImage(image,name="temp"):
#图片存放路径
fpath = os.path.join(FileName, name+'.jpg')
response=requests.get("http://www.xiaohuar.com/d/file/"+image).content
#写入图片
with open(fpath+'.jpg', 'wb+') as f:
f.write(response) #获取当前页图片Url集合
def GetImage(fanyeUr):
#请求页面
page =requests.get(fanyeUr)
#设置编码
page.encoding='gbk'
#正则获取图片集合
imglist = re.findall('alt="(.*?)" src="/d/file/(.*?\.jpg)"', page.text)
#循环保存图片
for name,url in imglist:
print(url,name)
SaveImage(url,name) #判断文件夹是否存在
if not os.path.exists(os.path.join(os.getcwd(), FileName)):
#新建文件夹
os.mkdir(os.path.join(os.getcwd(),FileName)) #请求第一页
fanyeUr='http://www.xiaohuar.com/p/suyan/index.html'
#循环翻页
for faye in range(1,13):
#获取翻页Url
GetImage(fanyeUr)
fanyeUr='http://www.xiaohuar.com/p/suyan/index_%s.html' % faye

7.查看效果完成,爬的照片就不贴了,好好学习,天天向上

最新文章

  1. Unity 碰撞检测中碰撞器与触发器的区别
  2. 安装最新版本的ReSharper导致原生全局搜索工具的消失问题
  3. C#实现Dll(OCX)控件自动注册的两种方法
  4. 李洪强漫谈iOS开发[C语言-024]-表达式与赋值运算符
  5. LVS 介绍以及配置应用
  6. U盘安装 OSX
  7. Beginning MyBatis 3 Part 2 : How to Handle One-to-Many and One-to-One Selects
  8. 老司机带你开飞机 一: mssql on linux 安装指导
  9. 获取子物体数量---Transform.childCount
  10. IDEA 护眼色设置 背景行颜色取消等设置
  11. D - The Lucky Week ZOJ - 3939 (思维)
  12. bootstrap之navbar
  13. 详解centos6和centos7防火墙
  14. 网站漏洞扫描工具Uniscan
  15. 20155201 2016-2017-2 《Java程序设计》第一周学习总结
  16. 水仙花数(类型:一级、C++)
  17. java设计模式0--设计模式简介
  18. htaccess跨域
  19. Java Web开发后端常用技术汇总
  20. 手把手教你写Windows 64位平台调试器

热门文章

  1. C# 实现二维数组的排序算法(代码)
  2. visual studio 2017激活
  3. PHP培训教程 php生成WAP页面
  4. 开源认证组件汇总 Kerberos和CAS
  5. JavaScript 查看stack trace
  6. centos 6.x 安装配置 node.js 环境
  7. inode节点用尽处理
  8. servlet过滤器Filter使用之DelegatingFilterProxy类
  9. 类LinkedHashSet
  10. Python高效率遍历文件夹寻找重复文件