1. 什么是爬虫

爬虫就是请求网站并提取数据的自动化程序

2. 爬虫的基本流程

1)发送请求

通过HTTP库向目标站点发送请求,即发送一个Request。

请求可以包含额外的headers等信息,等待服务器相应

2)获取相应内容

服务器接到请求后,会返回一个Response,Response的内容就是所要获取的页面内容。

返回的Response可能是HTML、json、二进制数据(图片视频)等类型

3)解析内容

根据得到的Response类型,选择对应的方法进行解析

4)保存数据

将我们想要的数据提取出来进行保存。

3. Request

1)请求方式

最常见的请求方式是GET和POST。除此之外还有其他的方式,比如HEAD、PUT、DELETE、OPTIONS等

  • GET - 从指定的资源请求数据。
  • POST - 向指定的资源提交要被处理的数据

GET和POST最大的区别在于:

a. GET将所以请求的参数都放在url里;POST将所以请求的参数放在表单里

b. GET请求可以直接通过url访问;POST请求需要构建表单才能访问

2)请求的url

url全称统一资源定位符。通过url获得网页/文档/图片等

3)请求头

请求头是请求时的头部信息。如User-Agent、Host、Cookies等信息。

网页在进行反爬虫时,请求头是一个非常重要的判定元素

4)请求体

一般来说,在使用POST请求时,需要传入相应的请求体来获得Response

4. Response

1)状态码status

2XX:成功访问

3XX:重定向

4XX:请求错误

5XX:服务器错误

2)相应头 Response Headers

如内容类型、内容长度、服务器信息等

3)响应体

最主要的部分,包含了请求资源的内容,如网页HTML、图片二进制数据等

5. 处理JavaScript渲染问题

1)AjAX异步加载分析

2)Selenium/WebDriver 模拟浏览器操作

3)Splash模拟JS

4)PyV8、Ghost.py模拟加载JS

python爬虫入门一:爬虫基本原理的更多相关文章

  1. Python爬虫入门:爬虫基础了解

    有粉丝私信我想让我出更基础一些的,我就把之前平台的copy下来了,可以粗略看一下,之后都会慢慢出. 1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫 ...

  2. python爬虫-入门-了解爬虫

    作为一个爬虫新手,我觉得首先要了解爬虫是的作用以及应用. 作用:通过爬虫获取网页内的信息.包括:标题(title)图片(image)链接(url)等等 应用:抽取所需信息,进行数据汇总及分析(从事网页 ...

  3. Python爬虫从入门到进阶(1)之Python概述及爬虫入门

    一.Python 概述 1.计算机语言概述 (1).语言:交流的工具,沟通的媒介 (2).计算机语言:人跟计算机交流的工具 (3).Python是计算机语言的一种 2.Python编程语言 代码:人类 ...

  4. Python基础及爬虫入门

    **写在前面**我们在学习任何一门技术的时候,往往都会看很多技术博客,很多程序员也会写自己的技术博客.但是我想写的这些不是纯技术博客,我暂时也没有这个能力写出 Python 或者爬虫相关的技术博客来. ...

  5. Python爬虫入门教程 5-100 27270图片爬取

    27270图片----获取待爬取页面 今天继续爬取一个网站,http://www.27270.com/ent/meinvtupian/ 这个网站具备反爬,so我们下载的代码有些地方处理的也不是很到位, ...

  6. 【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用

    [网络爬虫入门02]HTTP客户端库Requests的基本原理与基础应用 广东职业技术学院  欧浩源 1.引言 实现网络爬虫的第一步就是要建立网络连接并向服务器或网页等网络资源发起请求.urllib是 ...

  7. Python简单爬虫入门三

    我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...

  8. Python爬虫入门一之综述

    大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章作为参考,也欢迎大家一共分享学习经验. Pyth ...

  9. Python简单爬虫入门二

    接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...

  10. GJM : Python简单爬虫入门(二) [转载]

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

随机推荐

  1. python的正则表达式支持(链接)

    http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

  2. kojs select绑值(工作)

    <!DOCTYPE html>   <html> <head> <meta charset="utf-8" />   <tit ...

  3. UVa12186:Another Crisis(树形DP)

    一道简单的树形DP送给你. A couple of years ago, a new world wide crisis started, leaving many people with econo ...

  4. [已读]悟透JavaScript

    这本书出的特别早,就第一部分内容还行,第一次看得时候觉得蛮有意思,讲禅的方式来讲javascript,作者造了一个"甘露模型"来实现继承,不过今天整理的时候,发现那些笔记都没多少可 ...

  5. Unix高级环境编程之fcntl函数

    #include <fcntl.h> int fcntl(int fd, int cmd, ...) fcntl功能 复制一个现有的描述符 (cmd = F_DUPFD) ##### 返回 ...

  6. F. Bakkar In The Army 二分

    http://codeforces.com/gym/100283/problem/F 思路是二分第几行,二分出来的行是总和 >= n的,那么第k - 1行一定要选,那么再在第k行中二分那一列. ...

  7. unix&linux常用命令分类表

    本附录([美]哈恩:<Unix&Linux大学教程>附录B,张杰良译,清华大学出版社,2010年)摘要描述了书中所涉及的143个Unix使命,并且按照命令的类别进行排列.在每个名称 ...

  8. asp.net mvc 中使用 iframe 加载相应的静态html页面进行显示

     <iframe src='<%=ResolveUrl("~/Content/HTML_file/Agreement.html")%>' <%@ Page ...

  9. C#中 添加 删除 查找Xml中子节点

    //添加xml节点    private void AddXml(string image, string title)     {        XmlDocument xmlDoc = new X ...

  10. Android setVisibility(View.GONE)无效的问题及原因分析

    解决方案:可以在setVisibility()之前调用clearAnimation()方法清除掉动画,或setFillAfter(false)(时间上该函数内部也调用了clearAnimation() ...