在Python3中,爬虫技术是用于自动化获取网络数据的重要工具。本实例将介绍如何使用Python3编写一个简单的爬虫程序来抓取网页上的图片。这个实例适用于初学者,因为它完全基于Python3的语法,避免了与Python2的兼容性问题。 我们需要导入必要的库。`urllib.request`库用于发送HTTP请求并获取响应,`re`库用于正则表达式处理,以便从HTML中提取图片URL,`os`库则用于处理文件和目录操作。 ```python import urllib.request import re import os ``` 接下来,定义一个名为`getHtml`的函数,它接收一个URL作为参数,然后使用`urllib.request.urlopen()`方法打开指定的网页,并读取其内容。由于返回的数据通常是字节流,我们需要使用`decode('UTF-8')`将其转换为字符串。 ```python def getHtml(url): page = urllib.request.urlopen(url) html = page.read().decode('UTF-8') return html ``` 接下来定义`getImg`函数,该函数接收已解码的HTML字符串作为输入。我们使用正则表达式`r'src="(.+?\.jpg)" pic_ext'`来匹配所有的图片链接。`re.compile()`编译正则表达式,`findall()`方法则用于在HTML字符串中查找所有匹配项,并将结果存储在列表`imglist`中。 ```python def getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.compile(reg) imglist = imgre.findall(html) ... ``` 为了保存这些图片,我们需要一个保存图片的路径。在这里,我们将图片保存到`D:\test`目录下。如果该目录不存在,`os.makedirs()`会创建它。 ```python x = 0 path = 'D:\\test' if not os.path.isdir(path): os.makedirs(path) paths = path + '\\' ``` 接着,我们遍历`imglist`中的每个图片URL,使用`urllib.request.urlretrieve()`下载图片并保存到本地。`'{0}{1}.jpg'.format(paths, x)`用于构建文件名,其中`x`是图片的序号,确保每个图片都有唯一的文件名。 ```python for imgurl in imglist: urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x)) x = x + 1 ``` `getImg(html)`函数返回`imglist`,这样我们可以检查有多少图片被成功抓取。 ```python return imglist ``` 在主程序中,我们调用`getHtml()`函数获取指定网页(例如:`http://tieba.baidu.com/p/2460150866`)的HTML,然后调用`getImg(html)`下载并保存图片。 ```python html = getHtml("http://tieba.baidu.com/p/2460150866") print(getImg(html)) ``` 这个简单的Python3爬虫实例不仅教给我们如何抓取网页上的图片,还涉及到了HTTP请求、HTML解析、正则表达式以及文件操作等基础知识。通过理解这个例子,你可以进一步扩展爬虫功能,例如添加错误处理、设置爬取深度、使用代理等,以适应更复杂的网络数据抓取需求。

















- 陌陌的日记2023-07-27非常实用的文件,直接上手实践就能看到爬虫的效果,省时又省力。
- 陈后主2023-07-27使用Python3编写的爬虫代码,非常适合编程新手入门学习,不会让人感到困惑。
- 顾露2023-07-27这个文件给出了实际场景中常见的网页图片抓取方法,很有参考价值。
- Msura2023-07-27简洁明了的代码,让人可以快速掌握爬虫的基本操作,非常实用。
- 俞林鑫2023-07-27这个文件提供了简单易懂的代码示例,让初学者也能轻松理解爬虫的基本原理。

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


最新资源
- spring-data-redis-2.0.0.RC3.jar中文文档.zip
- sqlite-jdbc-3.46.1.3.jar中文文档.zip
- xmlbeans-4.0.0.jar中文文档.zip
- spring-data-redis-2.1.0.M1.jar中文文档.zip
- xmlbeans-5.0.1.jar中文文档.zip
- xmlbeans-5.0.0.jar中文文档.zip
- xmlbeans-5.1.0.jar中文文档.zip
- xmlbeans-5.1.1.jar中文文档.zip
- xmlbeans-5.2.0.jar中文文档.zip
- xmlbeans-5.2.1.jar中文文档.zip
- leptonica-1.78.0-1.5.1.jar中文文档.zip
- xmlbeans-5.2.2.jar中文文档.zip
- xmlbeans-5.3.0.jar中文文档.zip
- leptonica-1.78.0-1.5.2.jar中文文档.zip
- leptonica-1.78.0-1.5.jar中文文档.zip
- leptonica-1.79.0-1.5.3.jar中文文档.zip


