前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 爬虫 校花网[通俗易懂]

Python 爬虫 校花网[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-20 11:20:07
5270
发布2022-09-20 11:20:07
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

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


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

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

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

Python 爬虫 校花网[通俗易懂]
Python 爬虫 校花网[通俗易懂]

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

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

Python 爬虫 校花网[通俗易懂]
Python 爬虫 校花网[通俗易懂]

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

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

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

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

Python 爬虫 校花网[通俗易懂]
Python 爬虫 校花网[通俗易懂]

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

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

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

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

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

Python 爬虫 校花网[通俗易懂]
Python 爬虫 校花网[通俗易懂]

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

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

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

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

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

Python 爬虫 校花网[通俗易懂]
Python 爬虫 校花网[通俗易懂]

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

代码语言:javascript
复制
 1 import requests,re,os  2  3 #文件夹名称  4 FileName= 'download'  5 #保存图片  6 def SaveImage(image,name="temp"):  7 #图片存放路径  8 fpath = os.path.join(FileName, name+'.jpg')  9 response=requests.get("http://www.xiaohuar.com/d/file/"+image).content 10 #写入图片 11 with open(fpath+'.jpg', 'wb+') as f: 12  f.write(response) 13 14 #获取当前页图片Url集合 15 def GetImage(fanyeUr): 16 #请求页面 17 page =requests.get(fanyeUr) 18 #设置编码 19 page.encoding='gbk' 20 #正则获取图片集合 21 imglist = re.findall('alt="(.*?)" src="/d/file/(.*?\.jpg)"', page.text) 22 #循环保存图片 23 for name,url in imglist: 24 print(url,name) 25  SaveImage(url,name) 26 27 #判断文件夹是否存在 28 if not os.path.exists(os.path.join(os.getcwd(), FileName)): 29 #新建文件夹 30  os.mkdir(os.path.join(os.getcwd(),FileName)) 31 32 #请求第一页 33 fanyeUr='http://www.xiaohuar.com/p/suyan/index.html' 34 #循环翻页 35 for faye in range(1,13): 36 #获取翻页Url 37  GetImage(fanyeUr) 38 fanyeUr='http://www.xiaohuar.com/p/suyan/index_%s.html' % faye

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

Python 爬虫 校花网[通俗易懂]
Python 爬虫 校花网[通俗易懂]

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167642.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档