一 什么是爬虫
爬虫:就是抓取网页数据的程序。

二、爬虫怎么抓取网页数据:
网页三大特征:
-1. 网页都有自己唯一的URL(统一资源定位符)来进行定位
-2. 网页都使用HTML (超文本标记语言)来描述页面信息。
-3. 网页都使用HTTP/HTTPS(超文本传输协议)协议来传输HTML数据。
爬虫的设计思路:
-1. 首先确定需要爬取的网页URL地址。
-2. 通过HTTP/HTTP协议来获取对应的HTML页面。
-3. 提取HTML页面里有用的数据:
a. 如果是需要的数据,就保存起来。
b. 如果是页面里的其他URL,那就继续执行第二步。

四、为什么选择Python做爬虫?
可以做爬虫的语言有很多,如 PHP、Java、C/C++、Python等等…
- PHP 虽然是世界上最好的语言,但是他天生不是干这个的,而且对多线程、异步支持不够好,并发处理能力很弱。爬虫是工具性程序,对速度和效率要求比较高。
- Java 的网络爬虫生态圈也很完善,是Python爬虫最大的对手。但是Java语言本身很笨重,代码量很大。
重构成本比较高,任何修改都会导致代码的大量变动。爬虫经常需要修改部分采集代码。
- C/C++ 运行效率和性能几乎最强,但是学习成本很高,代码成型比较慢。
能用C/C++做爬虫,只能说是能力的表现,但是不是正确的选择。
- Python 语法优美、代码简洁、开发效率高、支持的模块多,相关的HTTP请求模块和HTML解析模块非常丰富。
还有强大的爬虫Scrapy,以及成熟高效的 scrapy-redis分布式策略。
而且,调用其他借口也非常方便(胶水语言)

五、爬虫必须掌握的知识:
-1. Python的基本语法知识
-2. 如何抓取HTML页面:
HTTP请求的处理,urllib、urllib2、requests
处理后的请求可以模拟浏览器发送请求,获取服务器响应的文件
-3. 解析服务器响应的内容
re、xpath、BeautifulSoup4(bs4)、jsonpath、pyquery等
使用某种描述性一样来给我们需要提取的数据定义一个匹配规则,
符合这个规则的数据就会被匹配。
-4. 如何采集动态HTML、验证码的处理
通用的动态页面采集:Selenium + PhantomJS(无界面):模拟真实浏览器加载js、ajax等非静态页面数据
Tesseract:机器学习库,机器图像识别系统,可以处理简单的验证码,复杂的验证码可以通过手动输入/专门的打码平台
-5 Scrapy框架:(Scrapy,Pyspider)
高定制性高性能(异步网络框架twisted),所以数据下载速度非常快,
提供了数据存储、数据下载、提取规则等组件。
-6 分布式策略 scrapy-reids:
scrapy-redis,在Scrapy的基础上添加了一套以 Redis 数据库为核心的组件。
让Scrapy框架支持分布式的功能,主要在Redis里做 请求指纹去重、请求分配、数据临时存储。

                                (决定做一套爬虫的系列,每天更新!谢谢支持。)

python爬虫系列(一):爬虫简介相关推荐

  1. python全系列之爬虫scrapy_python爬虫scrapy之登录知乎

    下面我们看看用scrapy模拟登录的基本写法: 注意:我们经常调试代码的时候基本都用chrome浏览器,但是我就因为用了谷歌浏览器(它总是登录的时候不提示我用验证码,误导我以为登录时不需要验证码,其实 ...

  2. 【python爬虫系列】爬虫+Selenium

    文章目录 Python下Selenium安装及环境配置 Python Selenium库的使用 基础知识 Selenium 快速入门 python爬取百度 python爬取拉勾招聘 selenium. ...

  3. 快速入门网络爬虫系列 Chapter16 | 爬虫性能提升

    Chapter16 | 爬虫性能提升 一.基础简介 1.任务调度 2.线程与进程 2.1.进程 2.2.线程 2.3.线程与进程的联系 2.4.线程与进程的区别 3.多线程 3.1.多线程的原理 3. ...

  4. Java爬虫系列(五) - 爬虫补充内容+ElasticSearch展示数据

    Java爬虫内容补充和ElasticSearch 网页去重 之前我们对下载的url地址进行了去重操作,避免同样的url下载多次.其实不光url需要去重,我们对下载的内容也需要去重. 在网上我们可以找到 ...

  5. 爬虫系列:穿越网页表单与登录窗口进行采集

    上一期我们讲解了数据标准化相关内容,首先对单词出现的频率进行排序,之后对一些大小写进行转换,缩小 2-gram 序列的重复内容. 当我们真正迈出网络数据采集基础之门的时候,遇到的第一个问题可能是:&q ...

  6. python 全栈开发,Day136(爬虫系列之第3章-Selenium模块)

    python 全栈开发,Day136(爬虫系列之第3章-Selenium模块) 一.Selenium 简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直 ...

  7. python爬虫常见报错_Python爬虫系列之什么是爬虫

    时间过的总是那么快,特别是对于一个有拖延症的人来说,例如我...早就想出一个关于爬虫的系列教程,但总是被自己的拖延症和一系列的杂碎事情打断.最近终于将自己的所有事情以及自己最真实的想法捋顺了,所以决定 ...

  8. python爬虫系列之下载在线文档Excel(腾讯)

    python爬虫系列之腾讯文档Excel数据 一.简介 二.实现步骤 1. 数据准备 2. 获取当前用户nowUserIndex 3.创建导出任务 4. 检查数据准备进度,并下载 三.完整代码 四.效 ...

  9. 「Python爬虫系列讲解」八、Selenium 技术

    本专栏是以杨秀璋老师爬虫著作<Python网络数据爬取及分析「从入门到精通」>为主线.个人学习理解为主要内容,以学习笔记形式编写的. 本专栏不光是自己的一个学习分享,也希望能给您普及一些关 ...

  10. python 全栈开发,Day137(爬虫系列之第4章-scrapy框架)

    python 全栈开发,Day137(爬虫系列之第4章-scrapy框架) 一.scrapy框架简介 1. 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所 ...

最新文章

  1. Spring Cloud【Finchley】- 21 Spring Cloud Stream 构建消息驱动微服务
  2. Ubuntu下使用WebStorm开发nodejs(一)
  3. MySQL中的show full columns from 表名
  4. jQuery事件4——hover
  5. linux docker漏洞,安装shadow或linux-pam的Alpine Linux Docker镜像有漏洞,附解决
  6. python3 类的相关内容
  7. in use 大学英语4word_(word)大学英语考试样题四.doc
  8. 网站推广中增加外链的八个技巧
  9. java final 内存语义_final 域的内存语义
  10. mysql queries 很大,mysql优化通常使用的几种方法
  11. dws中间表模型设计: 页面受访明细宽表
  12. 图像识别没你想的那么难!看完这篇你也能成专家
  13. Intel VT-d(1)- 简介
  14. Cocos2dx 3.2 横版过关游戏Brave学习笔记(一)
  15. Spark教程——(10)Spark SQL读取Phoenix数据本地执行计算
  16. JS判断输入的字符串是否是数字(正则表达式)
  17. 最简短的找工作经历:没有和任何人交谈,他就进入了亚马逊
  18. 本人对2023年网络安全演练规划要求
  19. python工作流引擎_工作流,活动图和Python协程(一)
  20. 补充远程桌面数字证书读取问题

热门文章

  1. [转]平凡是福,金玉满堂,莫之能守。富贵而骄,自遗其咎。
  2. 网页通过url传递数据
  3. char类型与字符编码
  4. ps打造人物光滑的肤色
  5. 【经验贴】用最土的手法,最高调的绕过反爬
  6. 1.Linux基本简介和使用
  7. Vue快速入门一:官网、下载、定义变量
  8. 启明云端分享:出乎意料,原来旋钮屏还可以这么用
  9. 【机器学习】基于mnist数据集的手写数字识别
  10. 视频号运营玩法;以及视频号引流变现赚钱。丨国仁网络资讯