Python图片抓取自动机
菜鸡小白的摸鱼日记——Python图片抓取自动机
今天心血来潮开始学习Python网络爬虫(其实是因为本期要完成的一门专业课的大作业需要用爬虫,然而作为CS相关专业的一枚小白,学校里竟然从来没开过Python编程,emmmm也是很迷醉),挺有趣,趁机给博客开个张(微笑.jpg)。那就从零开始叭QAQ!
在学习了相关基本知识后,打算写一个简单的图片抓取程序(^-^)即:输入图片关键词,根据指定的URL自动爬取相应图片并在本地创建一个文件夹将图片存入其中。
话不多说,先上代码!
import re import requests import os word=input('Input the key words:') '输入目标图片的关键字' url = 'http://image.baidu.com/search/index?tn=baiduimage&ie=utf-8&hs=2&sid=&word='+word+'&ct' '指定URL' data = requests.get(url).text pic_url=re.findall('"objURL":"(.*?)",',data,re.S) n=1 '参数n记录图片编号' for each in pic_url: print(each) try: #捕获异常 pic=requests.get(each,timeout=10) except: #超过10s未响应则打印异常信息 print('Faild') continue path = 'D:\\'+word+'' '指定目录建在本地D盘' if not os.path.exists(path): os.makedirs(path,777) '判断是否已经存在相应的文件夹' '因为整个爬取过程是以循环方式进行的,而目录创建语句又在循环体之内,这一步很重要' string=''+path+'\\'+str(n)+'.jpg' '文件命名' fp=open(string,'wb') fp.write(pic.content) fp.close() n+=1
整个过程挺简单,重要语句解释已经在注释中说清楚了,下面展示运行抓取效果@-@
运行程序,输入关键字“火锅”,控制台涌现一堆URL
D盘根目录下已经自动创建名为“火锅”的文件夹
点击进入,看见一堆美味QAQ
作为一个火锅粉儿,我忍不住啦~
忍住!转回正经的,整理几个基础知识:
1.网络爬虫的概念:又被称作网络蜘蛛、网络机器人,可以按照指定的规则(算法)自动浏览或抓取网络中的信息。
2.网络爬虫的分类:通常可以分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫等
直接上自己的笔记截图
3.网络爬虫的常见技术:在HTTP网络请求常见的三种方式——urllib,urllib3,requests
这里着重介绍程序中用到的requests:Python中实现HTTP请求的一种方式,是第三方模块,实现HTTP请求往往比urllib模块更方便,操作更加人性化。使用时,需要先通过执行 pip install requests
代码安装。重要功能特性如下:
- Keep-Alive&连接池
- 国际化域名和URL
- Unicode响应体
- HTTP(S)代理支持
- 流下载
- 分块请求
- 内容自动解码
- 基本/摘要式身份认证
......(还有很多,努力学习再一一体会:D)
今天算是迈出了Python爬虫学习的第一步,也是第一次以这样的方式记录自己的学习,算是一个成长日记吧^^
还需要学习学习多写码~
Reference: