码迷,mamicode.com
首页 > 编程语言 > 详细

python应用之爬虫实战1 爬虫基本原理

时间:2018-05-18 22:50:29      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:投资   链接   返回   服务端   视频   加载   ref   分类   工具   

知识内容:

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

python应用之爬虫实战1 爬虫基本原理

标签:投资   链接   返回   服务端   视频   加载   ref   分类   工具   

原文地址:https://www.cnblogs.com/wyb666/p/9014402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!