[python爬虫]简单爬虫功能
2015-11-01 13:45
656 查看
在我们日常上网浏览网页的时候,经常会看到某个网站中一些好看的图片,它们可能存在在很多页面当中,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材。
我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。就算可以弄下来,但是我们需要几千个页面当中的图片,如果一个一个下载,你的手将残。好吧~!其实你很厉害的,右键查看页面源代码。
我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。
一、获取整个页面数据
二、抓取图片文件名
抓取文件名时,由于特殊符号会影响显示,所以将“ * ”,“ / ”等符号删
三、下载图片
下载后缀名是"gif"或者"jpg"的图片,并存放在E:\\googleDownLoad\\\cssmuban目录下
四、遍历所有url,下载每个页面的所需要的图片和文件名
运行结果如下:
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: /article/6669243.html
我们最常规的做法就是通过鼠标右键,选择另存为。但有些图片鼠标右键的时候并没有另存为选项,还有办法就通过就是通过截图工具截取下来,但这样就降低图片的清晰度。就算可以弄下来,但是我们需要几千个页面当中的图片,如果一个一个下载,你的手将残。好吧~!其实你很厉害的,右键查看页面源代码。
我们可以通过python 来实现这样一个简单的爬虫功能,把我们想要的代码爬取到本地。下面就看看如何使用python来实现这样一个功能。
一、获取整个页面数据
def get_content(url): """ 获取网页源码 """ html = urllib.urlopen(url) content = html.read() html.close() return content
二、抓取图片文件名
抓取文件名时,由于特殊符号会影响显示,所以将“ * ”,“ / ”等符号删
def get_name(name,file): """ 抓取图片文件名 """ self.picName = name.decode('utf-8') if "*" in self.picName: self.picName = self.picName.replace("*","") elif "/" in self.picName: self.picName = self.picName.replace("/","") print self.picName def get_file(info): """ 获取img文件 """ soup = BeautifulSoup(info,"html.parser") # 找到所有免费下载的模块 all_files = soup.find_all('a',title="免费下载") # 找到所有的hi标题 titles = soup.find_all('h1') # 截取需要的标题 for title in titles: name = str(title)[4:-5] # 获取文件名 for file in all_files: get_name(name,file)
三、下载图片
下载后缀名是"gif"或者"jpg"的图片,并存放在E:\\googleDownLoad\\\cssmuban目录下
def pic_category(str_images): """ 下载图片 """ soup = BeautifulSoup(info,"html.parser") all_image = soup.find_all('div',class_="large-Imgs") images = str_images pat = re.compile(images) image_code = re.findall(pat,str(all_image)) for i in image_code: if str(i)[-3:] == 'gif': image = urllib.urlretrieve('http://www.cssmoban.com'+str(i), 'E:\\googleDownLoad\\\cssmuban\\'+str(self.picName).decode('utf-8')+'.gif') else: image = urllib.urlretrieve('http://www.cssmoban.com'+str(i), 'E:\\googleDownLoad\\\cssmuban\\'+str(self.picName).decode('utf-8')+'.jpg') def pic_download(info): """ 下载图片 """ pic_category(r'src="(.+?\.gif)"') pic_category(r'src="(.+?\.jpg)"')
四、遍历所有url,下载每个页面的所需要的图片和文件名
self.num = 1 # 下载文件 for i in range(6000): url = 'http://www.cssmoban.com/cssthemes/'+ str(self.num) +'.shtml' info = get_content(url) get_file(info) pic_download(info) self.num = self.num + 1
运行结果如下:
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: /article/6669243.html
相关文章推荐
- python3 抓取网页资源的 N 种方法
- Ubuntu 下为python 安装 opencv
- python os目录和文件相关操作
- python中的reduce函数
- python在Windows下将.py转换成.exe文件
- python序列化和json
- LeetCode----Remove Duplicates from Sorted List II
- python-MD5加密
- ubuntu 下python第三库 dlib 安装
- Python批量读取人脸图片与数据互相转换
- Python图片与其矩阵数据互相转换
- python-random模块
- 4.2.1 Codec基类
- Python异常(try...except)对代码运行性能的影响
- Python 通过 ACR122 修改 Mifare 1 卡数据
- python 文件读写查找、替换相关简单操作
- [LeetCode] Binary Tree Level Order Traversal
- [LeetCode] Majority Element
- python调用dll 出现[Error 193]
- Python调用DLL