知识内容:
1.爬虫是什么
2.爬虫的基本流程
3.request和response
4.python爬虫工具
参考:http://www.cnblogs.com/linhaifeng/articles/7773496.html
一、爬虫是什么
1.爬虫定义
爬虫:把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物/数据, 爬虫实质是向网站发起请求,获取资源后分析并提取有用数据的程序
2.爬虫分类
- 定向:爬取特定领域的信息
- 非定向:爬取不确定领域的信息,比如百度搜索、谷歌搜索
3.爬虫价值
互联网中最有价值的便是数据,比如天猫商城的商品信息,链家网的租房信息,雪球网的证券投资信息等等,这些数据都代表了各个行业的真金白银,可以说,谁掌握了行业内的第一手数据,谁就成了整个行业的主宰,如果把整个互联网的数据比喻为一座宝藏,那我们的爬虫课程就是来教大家如何来高效地挖掘这些宝藏,掌握了爬虫技能,你就成了所有互联网信息公司幕后的老板,换言之,它们都在免费为你提供有价值的数据
4.爬虫应用领域
爬虫应用比较多的地方:
- 搜索引擎
- 数据分析
- 比价网站
- 门户网站(新闻、资讯)
二、爬虫的基本流程
基本流程:
- 发起请求:使用http库向目标站点发起请求,即发送一个Request(请求头、请求体等)
- 获取响应内容: Response(html,json,图片,视频等)
- 解析内容: 解析html数据\解析json数据\解析二进制数据
- 保存数据: 数据库\文件
三、request和response
关于http协议:http://www.cnblogs.com/wyb666/p/9014857.html
1.request与response
- request:请求
- response:响应
- request:用户将自己的信息通过浏览器发送给服务器
- response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)
注:浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。
2.request
(1)请求方式
- 常用的请求方式:GET,POST
- 其他请求方式:HEAD,PUT,DELETE,OPTHONS
- post与get请求最终都会拼接成这种形式:k1=xxx&k2=yyy&k3=zzz
- post请求的参数放在请求体内:可用浏览器查看,存放于form data内
- get请求的参数直接放在url后
(2)请求url
url全称统一资源定位符,如一个网页文档,一张图片, 一个视频等都可以用url唯一来确定
(3)网页的加载过程
- 加载一个网页,通常都是先加载document文档
- 在解析document文档的时候,遇到链接,则针对超链接发起下载图片的请求
(4)请求头
- User-agent:请求头中如果没有user-agent客户端配置,服务端可能将你当做一个非法用户
- cookies:cookie用来保存登录信息
- 一般做爬虫都会加上请求头(部分信息)
(5)请求体
- 如果是get方式,请求体没有内容
- 如果是post方式,请求体是format data
- 登录窗口,文件上传等,信息都会被附加到请求体内
- 登录,输入错误的用户名密码,然后提交,就可以看到post,正确登录后页面通常会跳转,无法捕捉到post
四、python爬虫工具
1.请求库
urllib模块:python内置模块,主要包含urllib.request、urllib.response、urllib.parse和urllib.error三部分
requests库:第三方模块,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。比 urllib 更方便,可节约大量的工作,完全满足 HTTP 测试需求
selenium库:第三方模块,最初是一个自动化测试工具,在爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题
2.解析库
re模块:python内置模块, 提供了正则表达式操作所需要的功能,能对HTML进行解析
BeautifulSoup4库:第三方模块,是一个可以从HTML或XML文件中提取数据的Python库
3.爬虫框架
Scrapy框架:一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫
http://www.cnblogs.com/wyb666/p/9014402.html
原文地址:https://www.cnblogs.com/wyb666/p/9014402.html