Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python爬虫-01:爬虫的概念及分类

Python爬虫-01:爬虫的概念及分类

作者头像
py3study
发布于 2020-01-19 08:05:12
发布于 2020-01-19 08:05:12
1.5K0
举报
文章被收录于专栏:python3python3

目录

  • # 1. 为什么要爬虫?
  • 2. 什么是爬虫?
  • 3. 爬虫如何抓取网页数据?
    • # 4. Python爬虫的优势?
  • 5. 学习路线
  • 6. 爬虫的分类
    • 6.1 通用爬虫:
    • 6.2 聚焦爬虫:

# 1. 为什么要爬虫?

大数据时代”,数据获取的方式:

  • 大型企业公司有海量用户,需要收集数据来提升产品体验 【百度指数(搜索),阿里指数(网购),腾讯数据(社交)】
  • 数据管理咨询公司: 通过数据团队专门提供大量数据,通过市场调研,问卷调查
  • 政府/机构提供的公开数据
    • 中华人民共和国统计局
    • World bank
    • Nasdaq
  • 第三方数据平台购买数据
    • 数据堂
    • 贵阳大数据交易平台
  • 爬虫数据

2. 什么是爬虫?


抓取网页数据的程序

3. 爬虫如何抓取网页数据?


首先需要了解网页的三大特征:

  1. 每个网页都有自己的URL(统一资源定位符)来定位
  2. 网页都使用HTML(超文本标记语言)来描述页面信息
  3. 网页都使用HTTP/HTTPS(超文本传输协议)来传输HTML数据

爬虫的设计思路:

  1. 首先确定需要爬取的网URL地址
  2. 通过HTTP/HTTPS协议来获取对应的HTML页面
  3. 提取HTML页面内有用的数据:

a. 如果是需要的数据--保存

b. 如果有其他URL,继续执行第二步

# 4. Python爬虫的优势?

语言

优点

缺点

PHP

世界上最好的语言

对多线程,异步支持不好,并发处理不够

Java

网络爬虫生态圈完善

Java语言本身笨重,代码量很大,数据重构成本高

C/C++

运行效率和性能几乎最强

学习成本很高

python

语法优美,代码简洁,开发效率高,模块多

5. 学习路线


  1. 抓取HTML页面:
  • HTTP请求的处理: urllib, urlib2, requests
  • 处理器的请求可以模拟浏览器发送请求,获取服务器响应的文件
  1. 解析服务器相应的内容:
  • re, xpath, BeautifulSoup(bs4), jsonpath, pyquery等
  • 使用某种描述性语言来给我们需要提取的数据定义一个匹配规则,符合这个规则的数据就会被匹配
  1. 采集动态HTML验证码的处理
  • 通用动态页面采集: Selenium + PhantomJS:模拟真实浏览器加载JS
  • 验证码处理: Tesseract机器学习库,机器图像识别系统
  1. Scrapy框架:
  • 高定制性,高性能(异步网络框架twisted)->数据下载快
  • 提供了数据存储,数据下载,提取规则等组件
  1. 分布式策略:
  • scrapy redis:在scarpy基础上添加了以redis数据库为核心的一套组件,主要在redis做请求指纹去重、请求分配、数据临时存储
  1. 爬虫、反爬虫、反反爬虫之间的斗争:
  • User-Agent, 代理, 验证码, 动态数据加载, 加密数据

6. 爬虫的分类


6.1 通用爬虫:

1.定义: 搜索引擎用的爬虫系统 2.目标: 把所有互联网的网页爬取下来,放到本地服务器形成备份,在对这些网页做相关处理(提取关键字,去除广告),最后提供一个用户可以访问的借口

3.抓取流程:

a) 首先选取一部分已有的URL, 把这些URL放到带爬取队列中

b) 从队列中取出来URL,然后解析NDS得到主机IP,然后去这个IP对应的服务器里下载HTML页面,保存到搜索引擎的本地服务器里,之后把爬过的URL放入已爬取队列

c) 分析网页内容,找出网页里其他的URL连接,继续执行第二步,直到爬取结束

4.搜索引擎如何获取一个新网站的URL:

  1. 主动向搜索引擎提交网址: https://ziyuan.baidu.com/linksubmit/index
  2. 在其他网站设置网站的外链: 其他网站上面的友情链接
  3. 搜索引擎会和DNS服务商进行合作,可以快速收录新网站

5.通用爬虫注意事项 通用爬虫并不是万物皆可以爬,它必须遵守规则: Robots协议:协议会指明通用爬虫可以爬取网页的权限

我们可以访问不同网页的Robots权限

6.通用爬虫通用流程:

7.通用爬虫缺点

  1. 只能提供和文本相关的内容(HTML,WORD,PDF)等,不能提供多媒体文件(msic,picture, video)及其他二进制文件
  2. 提供结果千篇一律,不能针对不同背景领域的人听不同的搜索结果
  3. 不能理解人类语义的检索
  4. 聚焦爬虫的优势所在

DNS 域名解析成IP: 通过在命令框中输入ping www.baidu.com,得到服务器的IP

6.2 聚焦爬虫:

爬虫程序员写的针对某种内容的爬虫-> 面向主题爬虫,面向需要爬虫

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/04/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python爬虫(一)_爬虫原理和数据抓取
本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家、思想家、政治家、战略家、社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT即数据技术,由数据在推倒人们的衣食住行,当今时代是一个大数据时代,数据从何而来? 企业产生的用户数据:百度指数、阿里指数、TBI腾讯浏览指数、新浪微博指数 数据平台购买数据:数据堂、国云数据市场、贵阳大数据交易所 政府机构公开的数据:中华人民共和国国家统计局数据、世界银行公开数据、联合国数据、纳斯达克
用户1174963
2018/01/17
3.2K0
python爬虫(一)_爬虫原理和数据抓取
Python爬虫基础讲解(一):爬虫的分类
通用网络爬虫是搜索引擎抓取系统(Baidu、Google、Sogou等)的一个重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。为搜索引擎提供搜索支持。
松鼠爱吃饼干
2021/09/02
5790
爬虫基础概念
爬虫是一个模拟人类请求网站行为的程序。可以自动请求网页、并把数据抓取下来,然后使用一定的规则提取有价值的数据;
HammerZe
2022/03/25
6830
爬虫基础概念
爬虫基础知识及流程
爬虫通俗来说就是一个模拟人类请求网站行为的程序。可以自动请求网页、并把数据抓取下来,然后使用一定的规则则提取有价值的数据。也可以理解为使用某种编程语言(这里当然是使用Python语言) 按照一定的顺序、 规则主动抓取互联网特定信息的程序或者脚本。 爬虫可以分为通用爬虫和聚焦爬虫 各大搜索引擎是通用爬虫一个很好的例子,通用爬虫在爬取内容时并不会对网页内容进行筛选,将网页的全部内容给爬取下来。 聚焦爬虫则是只爬取网页上自己需要的内容。 使用语言:
爱编程的小明
2022/09/05
6810
爬虫基础知识及流程
基于python-scrapy框架的爬虫系统[通俗易懂]
通用爬虫工作流程: 爬取网页 – 存储数据 – 内容处理 – 提供检索/排名服务
全栈程序员站长
2022/06/27
1.1K0
基于python-scrapy框架的爬虫系统[通俗易懂]
Python网络爬虫(一)- 入门基础1.通用爬虫 VS 聚焦爬虫2.HTTP & HTTPS3.urllib24.常用的响应报头(了解)
1.选择已有的url地址,将url地址添加到爬取队列 2.从提取url,DNS解析主机IP,将目标主机IP添加到爬取队列 3.分析网页内容,提取链接,继续执行上一步操作
Python攻城狮
2018/08/23
1.7K0
Python网络爬虫(一)- 入门基础1.通用爬虫 VS 聚焦爬虫2.HTTP & HTTPS3.urllib24.常用的响应报头(了解)
爬虫与反爬虫技术简介
互联网的大数据时代的来临,网络爬虫也成了互联网中一个重要行业,它是一种自动获取网页数据信息的爬虫程序,是网站搜索引擎的重要组成部分。通过爬虫,可以获取自己想要的相关数据信息,让爬虫协助自己的工作,进而降低成本,提高业务成功率和提高业务效率。
2020labs小助手
2022/09/20
9730
爬虫 (四) 必须掌握的基础概念 (一)
所谓的通用爬虫就是指现在的搜索引擎(谷歌,雅虎,百度)主要的构成部分,主要是互联网的网页爬取下来存于本地,形成备份
公众号---人生代码
2019/12/10
9340
爬虫 (四) 必须掌握的基础概念 (一)
python爬虫学习:爬虫与反爬虫
Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取!
python学习教程
2019/07/10
4.3K1
python爬虫学习:爬虫与反爬虫
爬虫学习(一)
The happiness of this life depends less on what befalls you than the way in which you take it.
小闫同学啊
2019/07/18
1.6K0
爬虫学习(一)
【收藏】一文读懂网络爬虫!
在当前数据爆发的时代,数据分析行业势头强劲,越来越多的人涉足数据分析领域。进入领域最想要的就是获取大量的数据来为自己的分析提供支持,但是如何获取互联网中的有效信息?这就促进了“爬虫”技术的飞速发展。
昱良
2019/07/04
1.6K0
python爬虫全解
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155881.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/06
1.7K0
python网络爬虫合法吗
Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取!
python学习教程
2019/07/10
2.7K1
python网络爬虫合法吗
python爬虫技术——小白入门篇
学习Python爬虫技术可以分为以下几个关键步骤和方法,并结合实际案例帮助你理解和应用:
知孤云出岫
2024/11/07
1.2K0
python爬虫技术——小白入门篇
Python爬虫图片:从入门到精通
在数字化时代,图片作为信息传递的重要媒介之一,其获取和处理变得越来越重要。Python作为一种功能强大且易于学习的编程语言,非常适合用来编写爬虫程序,帮助我们自动化地从互联网上获取图片资源。本文将从基础到高级,详细介绍如何使用Python编写图片爬虫。
正在走向自律
2024/12/18
5310
Python爬虫图片:从入门到精通
独家 | 一文读懂网络爬虫
前言 在当前数据爆发的时代,数据分析行业势头强劲,越来越多的人涉足数据分析领域。进入领域最想要的就是获取大量的数据来为自己的分析提供支持,但是如何获取互联网中的有效信息?这就促进了“爬虫”技术的飞速发展。 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件
数据派THU
2018/01/30
2.1K0
独家 | 一文读懂网络爬虫
走过路过不容错过,Python爬虫面试总结
Selenium 是一个Web 的自动化测试工具,可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。Selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫 PhantomJS 的工具代替真实的浏览器。Selenium库里有个叫 WebDriver 的API。WebDriver 有点儿像可以加载网站的浏览器,但是它也可以像BeautifulSoup 或者其他Selector 对象一样用来查找页面元素,与页面上的元素进行交互 (发送文本、点击等),以及执行其他动作来运行网络爬虫。
公众号---人生代码
2019/08/20
1.6K0
【Python爬虫实战】从基础概念到HTTP/HTTPS协议全面解析
Python 爬虫是一种通过编写程序自动化访问网页并从中提取信息的技术,通常用于从互联网上收集数据。它能够模拟用户浏览器行为,自动加载网页、抓取数据,并将所需信息存储在数据库或文件中,供后续分析使用。Python 是进行爬虫开发的常用语言,因为它拥有丰富的第三方库和简单易懂的语法,能够快速开发高效的爬虫。
易辰君
2024/11/07
4610
Python爬虫前奏
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
村雨遥
2019/09/09
4650
Python爬虫前奏
Python入门网络爬虫之精华版
首先列举一下本人总结的相关文章,这些覆盖了入门网络爬虫需要的基本概念和技巧:宁哥的小站-网络爬虫
IT派
2018/08/10
1.2K0
相关推荐
python爬虫(一)_爬虫原理和数据抓取
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档