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

知识内容:

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

时间: 2024-07-29 07:33:50

python应用之爬虫实战1 爬虫基本原理的相关文章

爬虫实战:爬虫之 web 自动化终极杀手 ( 上)

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:陈象 导语: 最近写了好几个简单的爬虫,踩了好几个深坑,在这里总结一下,给大家在编写爬虫时候能给点思路.本次爬虫内容有:静态页面的爬取.动态页面的爬取.web自动化终极爬虫. 分析: 数据获取(主要靠爬虫) 静态网页爬取 动态网页爬取 数据存储(python excel存储) Python Excel操作,保存结果 数据获取实战: 百度音乐(静态网页) 分析步骤1 . 打开百度音乐:http://music.baidu.com/

2017.08.10 Python爬虫实战之爬虫攻防篇

1.封锁user-agent破解: user-agent是浏览器的身份标识,网站就是通过user-agent来确定浏览器类型的.有很多网站会拒绝不符合一定标准的user-agent请求网页,如果网站将频繁访问网站的user-agent作为爬虫的标志,然后加入黑名单该怎么办? (1)首先在meiju项目下,settings.py的同级目录创建middlewares目录,进入middlewares目录,创建__init__.py,将middlewares目录变成一个Python模块 (2)创建资源文

2017.08.10 Python爬虫实战之爬虫攻防

1.创建一般的爬虫:一般来说,小于100次访问的爬虫都无须为此担心 (1)以爬取美剧天堂为例,来源网页:http://www.meijutt.com/new100.html,项目准备: scrapy startproject meiju100 F:\Python\PythonWebScraping\PythonScrapyProject>cd meiju100 F:\Python\PythonWebScraping\PythonScrapyProject\meiju100>scrapy gen

Python爬虫实战(2):爬取京东商品列表

1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反,JavaScript实现的动态网页内容,无法从html源代码抓取需要的内容,必须先执行JavaScript. 我们在<Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容>一文已经成功检验了动态网页内容的抓取方法,本文将实验程序进行改写,使用开源Python爬虫

Python爬虫实战七之计算大学本学期绩点

大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的还是获取它的原理.最主要的是了解cookie的相关操作. 本篇目标 1.模拟登录学生成绩管理系统 2.抓取本学期成绩界面 3.计算打印本学期成绩 1.URL的获取 恩,博主来自山东大学~ 先贴一个URL,让大家知道我们学校学生信息系统的网站构架,主页是 http://jwxt.sdu.edu.cn:

Python爬虫实战四之抓取淘宝MM照片

福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 最新动态 更新时间:2015/8/2 最近好多读者反映代码已经不能用了,原因是淘宝索引页的MM链接改了.网站改版了,URL的索引已经和之前的不一样了,之前可以直接跳转到每个MM的个性域名,现在中间加了一个跳转页,本以为可以通过这个页面然后跳转到原来的个性域名,而经过一番折腾发现,这个跳转页中的内容是JS动态生成的,所以不能用Urllib库来直接抓取了,本篇就只提供学习思路,代码不能继续用了. 之后博主会利用其它方

Python爬虫实战二之爬取百度贴吧帖子

大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不好使,八成是正则表达式那儿匹配不到了,请更改一下正则,当然最主要的还是帮助大家理解思路. 2016/12/2 本篇目标 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3.将抓取到的内容分析并保存到文件 1.URL格式的确定 首先,我们先观察一下百度贴吧的任意一个帖子. 比如:ht

python爬虫实战——5分钟做个图片自动下载器

python爬虫实战--图片自动下载器 制作爬虫的基本步骤 顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤. 一般来说,制作一个爬虫需要分以下几个步骤: 分析需求(对,需求分析非常重要,不要告诉我你老师没教你) 分析网页源代码,配合F12(没有F12那么乱的网页源代码,你想看死我?) 编写正则表达式或者XPath表达式(就是前面说的那个神器) 正式编写python爬虫代码 效果 运行: 恩,让我输入关键词,让我想想,输入什么好呢?好像有点暴露爱好了. 回车 好像开始下载了!好赞!,我看

Python网络爬虫实战视频教程

Python网络爬虫实战教程(全套完整版) 课程观看地址:http://www.xuetuwuyou.com/course/168课程出自学途无忧网:http://www.xuetuwuyou.com 课程目录:课时1:课程介绍课时2:Python初识课时3:Python语法基础 课时4:Python控制流与小实例 课时5:答疑环节 课时6:Python函数详解 课时7:Python模块实战 课时8:Python文件操作实战 课时9:Python异常处理实战 课时10:Python面向对象编程