### Python妹子图简单爬虫实例知识点解析 #### 一、爬虫基础知识介绍 在开始具体代码分析之前,我们先简要介绍一下爬虫的基本概念。网络爬虫(Web crawler),也称为网页蜘蛛或网络机器人,是一种按照一定的规则自动地抓取万维网信息的程序或者脚本。通常用于搜索引擎和其他网站的数据收集工作。对于Python程序员来说,编写网络爬虫是一种常见的技能,可以通过爬虫技术来自动化抓取网络上的数据。 #### 二、页面源码获取 页面源码获取是爬虫的基础功能之一,通常通过Python的标准库`urllib`或第三方库如`requests`来完成。本文中的`getHtml`函数就是通过`urllib.urlopen`来获取网页内容的。例如: ```python def getHtml(url): page = urllib.urlopen(url) html = page.read() return html ``` 这里需要注意的是,在Python3中,`urllib.urlopen`已经被拆分为`urllib.request.urlopen`。因此,在Python3环境中运行这段代码时,需要做相应的调整。 #### 三、进度显示 在爬虫程序中,为了提高用户体验,往往需要加入进度显示功能。本文中的`schedule`函数就是用来显示下载进度的,它接收三个参数:已经下载的数据块数量、每个数据块的大小以及总的文件大小,并计算出当前的下载百分比,然后输出到控制台: ```python def schedule(a, b, c): """ a: 已经下载的数据块 b: 数据块的大小 c: 远程文件的大小 """ per = 100.0 * a * b / c if per > 100: per = 100 print('%.2f%%' % per) ``` #### 四、正则表达式匹配 正则表达式是用于处理字符串的强大工具,特别是在爬虫领域,经常用来从HTML中提取所需的信息。本文中使用了多次正则表达式的匹配操作,例如: 1. **分页匹配**:通过`findPage`函数来匹配分页信息。 ```python def findPage(html): myItems = re.findall('<span>(\d*)</span>', html, re.S) return myItems.pop() ``` 2. **列表匹配**:通过`findList`函数来匹配列表页面上的图片链接。 ```python def findList(html): myItems = re.findall('<h2><a href="http://www.mzitu.com/(\d*)" title="(.*?)" target="_blank">.*?</a></h2>', html, re.S) return myItems ``` 3. **图片URL匹配**:通过`downloadImg`函数来匹配单个页面上的图片URL。 ```python def downloadImg(html, num, foldername): picpath = '%s' % (foldername) # 下载到的本地目录 if not os.path.exists(picpath): # 路径不存在时创建一个 os.makedirs(picpath) target = picpath + '/%s.jpg' % num myItems = re.findall('<p><a href="https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/http\/www.mzitu.com\/.*?"><img src="(.*?)" alt=".*?"/></a></p>', html, re.S) print('Downloading image to location:', target) urllib.urlretrieve(myItems[0], target, schedule) ``` 这里的`re.S`标志表示让`.`能够匹配换行符。值得注意的是,`urllib.urlretrieve`在Python3中已经被替换为`urllib.request.urlretrieve`。 #### 五、文件操作与目录管理 在爬虫程序中,文件操作和目录管理也是非常重要的部分。本文中使用了`os`模块来处理文件夹的创建和图片的保存: ```python picpath = '%s' % (foldername) # 下载到的本地目录 if not os.path.exists(picpath): # 路径不存在时创建一个 os.makedirs(picpath) ``` 这里使用`os.makedirs`来递归创建目录,确保文件夹存在。 #### 六、整体逻辑流程 我们来看看整个爬虫的逻辑流程。程序首先获取主页的HTML源码,然后解析出模型页面的链接,再逐个访问这些链接并下载其中的图片。具体步骤如下: 1. 获取主页HTML源码,找到所有模型的链接; 2. 遍历每个模型链接,获取其详情页的HTML源码; 3. 在详情页中找到所有的分页链接; 4. 对每一页执行图片的下载操作; 5. 完成所有图片的下载后,输出完成信息。 以上就是对“python妹子图简单爬虫实例”的详细介绍,希望这些知识点能帮助大家更好地理解和掌握Python爬虫技术。




























- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 安徽钢结构监理规划.doc
- 中文产品包装介绍20141020.pdf
- 住宅楼钢筋工程分包合同.doc
- 检测工作流程图.docx
- 输变电工程监理规划f.doc
- DES的对称加密算法的设计方案与实现周莹冰修改.doc
- 人工智能第3章通过搜索进行问题的求解.ppt
- 贵阳市市直机关经济适用房项目监理组施工监理交底书.doc
- 外墙外保温工程质量控制流程.doc
- 新建住院大楼弱电系统工程招标文件.doc
- 二次深化设计管理流程.docx
- 地块钢结构焊接工艺评定方案.doc
- 质量记录控制程序(00001).docx
- 地下工程超长结构抗裂防渗混凝土施工.doc
- 装修之水电安装精讲全过程78页(图文并茂).doc
- 城市供水系统监控和自动化技术设备情况介绍.doc


