项目二:爬取网页图片
来源:互联网 发布:淘宝卖点文案 编辑:程序博客网 时间:2024/06/16 20:10
项目二:爬取网页图片
标签(空格分隔): 爬虫
1. 项目需求分析
要爬取图片所在网页url = 'http://www.99rblc.com/ozgq/6/i.htm'
1.1 查找相应标签得到图片所在链接及其名字后,跳转新的图片所在链接,并按照图片名字建立相应文件夹
1.2 跳转至新的链接,查找标签得到该图片文件所在的链接,爬取下来存入建立的文件夹中
1.3 重复上述步骤遍历所有图片
2. 项目功能分析
2.1 爬取图片list所在页面之后用BeautifulSoup()
进行煲汤,查看网页源代码可知图片文件名字、图片文件链接等信息,这些信息保存在a
标签中,通过语句title = soup.find_all('a',attrs={'class':'title'})
可以得到本页面所有图片的list,分别抽取出图片文件夹名称和图片文件所在链接
2.2 图片文件夹名称通过title[i].string
得到,所在链接通过title[1].attrs['href']
得到
2.3 跳转到图片文件的链接后,通过查看网页源代码可知,图片文件保存在img
标签中
3. 代码功能分析
先在这里贴出全部代码(面向过程方法):
import requestsfrom bs4 import BeautifulSoupimport osdef getHTMLText(url): try: r = requests.get(url) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return ""def getPicList(pic_path, pic_list_url ,pic_url_list): # 列表pic_path存放图片文件名称,用于建立文件夹 html = getHTMLText(pic_list_url) soup = BeautifulSoup(html, 'html.parser') # 抽取出包含图片文件名称以及图片文件链接的标签 title = soup.find_all('a', attrs={'class':'title'}) for t in title: try: path = "D://pics//" + t.string + "//" pic_info_url = 'http://www.99rblc.com' + t.attrs['href'] pic_path.append(path) pic_url_list.append(pic_info_url) except: continuedef getPicInfo(pic_path, pic_url_list): for i in range(len(pic_path)): if not os.path.exists(pic_path[i]): os.makedirs(pic_path[i]) html = getHTMLText(pic_url_list[i]) try: if html == "": continue soup = BeautifulSoup(html, 'html.parser') imgs = soup.find_all('img') for img in imgs: pic_info_url = img.attrs['data-original'] filename = pic_path[i] + pic_info_url.split('/')[-1] r = requests.get(pic_info_url) with open(filename,'wb') as f: f.write(r.content) f.close() print('已保存 ' + pic_path[i].split('//')[-2]) except: continuedef main(): # 遍历深度 depth = 3 for i in range(depth): pic_list_url = 'http://www.99rblc.com/ozgq/6/' + str(i+1) + '.htm' pic_path = [] pic_url_list = [] getPicList(pic_path, pic_list_url, pic_url_list) getPicInfo(pic_path, pic_url_list)main()
3.1 getPicList(pic_path, pic_list_url ,pic_url_list)
函数分析
title
标签保存有组图文件的名称以及组图所在的链接,提取出组图名称后保存在列表pic_path
里,提取出组图所在链接后保存在列表pic_url_list
中
3.2 getPicInfo(pic_path, pic_url_list)
函数分析
函数参数为组图名称列表pic_path
和组图所在链接列表pic_url_list
,在爬取正确无误的前提下,一套组图会对应有一个组图所在链接,所以这两个列表的元素个数应该相同
首先根据组图名称建立相应的文件夹,爬取得到的相应组图图片就保存在该文件夹里。然后对组图所在链接解析煲汤,通过查看源代码可以发现图片全部保存在img
标签里,那可以通过soup.find_all('img')
语句得到所有的标签,还是查看源代码可知图片文件的统一资源定位符pic_info_url
保存在img
标签的data-original
属性里,那么可以通过语句r = requests.get(pic_info_url)
得到图片文件并通过文件操作写入之前建立好的文件夹里
- 项目二:爬取网页图片
- 爬取网页图片
- 爬取网页图片
- python爬取网页图片
- python爬取网页图片
- Python爬取网页图片
- Python爬取网页图片
- Java爬取网页图片
- Python 爬取网页图片
- Python 网页爬取图片
- 用python 爬取网页图片
- Python爬取一个网页的图片
- 爬虫爬虫学习: 爬取网页图片
- Python入门-爬取网页图片
- 使用Python爬取网页图片
- 利用python爬取网页图片
- python3 爬虫--网页图片爬取
- Python爬取一个网页的图片
- admin_move_table的重组机制验证(失败了)
- 项目一:股票信息定向爬虫
- echarts+ajax+ssh框架+mysql的简单应用
- 游戏编程入门(9):开发 Henway(小鸡过马路) 游戏
- Eclipse快捷键大全
- 项目二:爬取网页图片
- 二叉排序树
- BZOJ 1820 DP 解题报告
- 十二、状态模式——设计模式学习笔记
- msys2修改用户名和主目录
- 删数问题(典型的贪心算法问题)
- Hadoop2.6.4集群安装配置
- [NOIP2015]day1题解集合
- 11.mac 各种服务