爬虫入门到放弃:什么是爬虫腾讯云开发者社区

18年初,还在实习期的我因为工作需求开始接触Java爬虫,从一个网站爬取了163W条poi数据,这是我人生中写的第一个爬虫,也是唯一的一个Java爬虫。后来这些poi数据也成了我毕业设计中的一部分。后来开始学习Python爬虫以及爬虫框架Scrapy,尤其是Scrapy,前前后后研究了一个多月,并利用Scrapy构建了千万级数据的ICA(互联网内容识别)资源库。

写爬虫系列的目的主要是想记录一下自己学习爬虫的经历,以及遇到的一些问题,也希望能够给爬虫初学者带来一些启示。之前给同事普及爬虫的时候,自己动手做了人生中的第一个PPT,所以爬虫系列文章将围绕着这个PPT来开展。

目录

如图,将从四个方面来介绍爬虫。

很多人包括我在内,刚开始听到爬虫的时候都会有一种朦朦胧胧、遥不可及的感觉。很多人觉得只有程序员才需要使用爬虫,其实并不是。至少,Python处理文档和爬虫的能力是面向日常工作的。

举个栗子:有人需要每天从各个网站上粘贴成百上千条数据到excel中,如果使用爬虫,一个requests、pandas或xlwt就搞定了,几十行代码而已。日常上线需求需要根据模板来写三个文档进行上传,前前后后粘贴需要四五分钟,后来我为了偷懒用Python写了个程序打包成exe,点击一下几秒就完成了。所以,Python让日常工作工作更高效,值得更多的人学习。

爬虫入门

概念

什么是爬虫?

爬虫库可以分为两个部分。一是请求部分,主要负责请求数据,例如Python的requests;二是解析部分,负责解析html获取数据,例如Python的BS4。

爬虫做了什么工作?

模仿人的行为从网页获取数据。一个人,需要先打开浏览器、输入网址,从网站后台获取网页并加载到浏览器展示,最后才能获取数据。爬虫的请求部分,就相当于浏览器的角色,会根据你输入的url从网站后台获取html,而解析部分就会根据预先设定的规则,从html中获取数据。

而开发者的工作,一是装饰请求部分,例如在请求头中添加User-Agent、Cookie等,让网站觉得是一个人通过浏览器来访问的,而不是一个程序。二是通过选择器来编写规则,从页面获取数据。

这是浏览器的请求头内容。

请求头

技术栈

做爬虫需要什么具备什么样的技术?是不是只有大佬才可以?其实并不是。这里主要分为两个层次要求。

编程语言:只需要有Java或者Python基础即可,有基本的Html阅读能力以及CSS选择器、Xpath选择器、正则表达式的使用能力。

数据存储:爬取的数据要只有存储下来才有意义。数据可以保存在文件或数据库中,这就要求开发者有文件读写或数据库操作的能力。对于数据库,掌握基本的表结构设计、增删改查的能力即可。

开发者工具:爬虫开发者使用最多的工具,各种浏览器按下F12都会弹出。通常用来拦截请求,定位元素,查看JS源文件。

开发者工具

在爬虫的开发中,会遇到各种各样的问题,就需要有独立思考和解决问题的能力。目前,很多网站都采用了异步加载数据或JS加密,所以需要具备Ajax和JS方面的知识。

网络知识。基本的状态码:20x成功,30x转发重定向,40x请求不存在、50x服务端问题。有时候还需要TCP的知识,例如established、time_waited等TCP连接状态代表着什么。

基础概念我们已经讲完,怎么来开发个爬虫呢?举个栗子:

斗罗大陆

如图,是星斗苍凉、月色照亮的动漫斗罗大陆的播放页面。我们以此为例,开发爬虫来获取页面数据。

Java爬虫的开发主要使用Jsoup。

引入Jsoup依赖:

程序开发:

对于Python爬虫的开发,使用的是requests和bs4。

安装模块:

程序开发:

上面两个程序输出相同的结果:

至此,斗罗大陆的爬虫开发工作就完成了。从代码也能看出来,请求部分也就一行,大部分都是解析部分的,这里使用css选择器来完成数据的解析。

我们再来看看请求部分获取的网页内容:

请求响应内容

当然,一个完整的爬虫程序除了以上模块,还需要有存储模块,必要的时候还需要代理池模块。其次,对于整个大型网站数据的爬取还需要对网站进行深度/广度遍历来完成,还需要考虑到如果爬虫中断,如何从断点开始继续爬取等方面的设计。这一部分的内容后面会写。

这一篇文章不对程序的开发做过多的深入探讨,只讲述爬虫的概念以及程序演示。而下一篇文章会根据上面的程序,着重对Jsoup和requests、bs4模块以及css选择器的使用深入探究。期待下一次相遇。

THE END
0.小白如何入门Python爬虫?这是我见过最详细的入门教学这是我见过最详细的入门教学_python 爬取 小白教程 想要入门Python 爬虫首先需要解决四个问题 熟悉python编程 了解HTML 了解网络爬虫的基本原理 学习使用python爬虫库 01了解什么是爬虫,它的基本流程是什么? 网络爬虫,其实叫作网络数据采集更容易理解。 就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取jvzquC41dnuh0lxfp0tfv87623e96>;52:60c{ykenk0fnyckny03<=62;=44
1.Python入门爬虫,教程详解。python学习爬虫Python入门爬虫,教程详解。 文章目录 前言 一、Python网络爬虫 二、抓取的数据格式 三、现代前端页面爬取 总结 关于Python技术储备 一、Python所有方向的学习路线 二、Python基础学习视频 三、精品Python学习书籍 四、Python工具包+项目源码合集 ①Python工具包jvzquC41dnuh0lxfp0tfv87523e92;9328:0c{ykenk0fnyckny03<8;76=94
2.Python爬虫介绍|菜鸟教程一、什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。 二、Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)。 调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调jvzquC41yy}/t~sqqd4dqv4y5etpvn4r{vnpp6xrkfks/rsvtq4ivvq
3.爬虫是怎么工作的?从原理到用途技术门槛差异: 简单的爬虫(比如爬取静态网页)用Python的“requests”“BeautifulSoup”库就能实现,新手跟着教程也能做; 复杂的爬虫(比如爬取需要登录的平台、动态网页),需要掌握更多技术(如Selenium、API接口调用)。 五、总结 爬虫本身没有“好坏”之分,它就像一把“铲子”:用它合规地挖掘公开信息,能帮我们提高效率jvzquC41fg|fnxugt0gmk‚zp0eun1jwvkerf1:;::763
4.爬虫入门教程(非常详细)从零基础入门到精通,看完这一篇就够了本文介绍了Python在抓取网页、模拟浏览器行为、网页处理以及爬虫框架中的优势,特别强调了urllib和BeautifulSoup库的作用,并提到了Python3.x的适用性。 01Python优势 对于网络爬虫开发来说,Python有着无与伦比天然优势,这里从两个方面对其优势进行分析与讲解。 jvzquC41dnuh0lxfp0tfv8fqnct24<4ctvodnn4fgvgjn|435977;;<;
5.python爬虫入门,10分钟就够了,这可能是我见过最简单的基础教学一、基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。 jvzquC41dnuh0lxfp0tfv8r2a7?35?6491gsvrhng1jfvjnnu173;=5584<
6.Python爬虫入门知识!腾讯云开发者社区其中,搜索引擎就是个很好的例子,搜索引擎技术里面大量使用爬虫,他爬取下整个互联网的内容,存储在数据库里面,做索引。 爬虫思路 首先,我们要知道,每一个网页都是一份HTML文档,全称叫hypertext markup language,是一种文本标记语言,他长的就像这样: 代码语言:javascript jvzquC41yy}/eutwf0zfpljpv0ipo8igxgrprnw1ctzjeuj136<18;=
7.一文带你了解爬虫天池技术圈这表示除上面那些定义过的爬虫以外其他爬虫都不允许爬取百度任何东西! 2.法律 我们都知道在发起请求时User-agent是可以自定义的,也就是说我们可以绕过robots协议和以User-agent来定义的反爬虫技术,所以robots协议可能更像一个君子协议,那咱们国家有没有法律明文规定呢?我们来了解一下非法侵入计算机信息系统罪: jvzquC41vkgoeqn0cnozww3eqo5gq{zo1rutv8;4;57
8.《Python网络爬虫技术案例教程》共10单元473页).pdf《Python网络爬虫技术案例教程》共10单元473页).pdf,网络爬虫入门 第 章导读 当今这, 炸的信患时代,用户与网络的沟通本质上是数据 这导! 息数据量的爆发式增长。 3每量 的皂饕 .善着巨大的价值,用户如何自动高效地从互联网 掣感兴照 :晶地应用是f亟待解决的问题。 标样痢jvzquC41oc~/dxtm33>/exr1jvsm1;5441693>4:22922?6652653;<0ujzn
9.携程:关于反爬虫,看这一篇就够了腾讯云开发者社区三、什么是爬虫和反爬虫 因为反爬虫暂时是个较新的领域,因此有些定义要自己下。我们内部定义是这样的: 爬虫:使用任何技术手段,批量获取网站信息的一种方式。关键在于批量。 反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。关键也在于批量。 jvzquC41yy}/eutwf0zfpljpv0ipo8igxgrprnw1ctzjeuj132>:8;:
10.Python爬虫入门教程(非常详细)爬虫python入门Python爬虫入门教程(非常详细) 初学Python之爬虫的简单入门 一、什么是爬虫? 1.简单介绍爬虫 爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术,将互联网中丰富的网页信息保存到本地,形成镜像备份。我们jvzquC41dnuh0lxfp0tfv8vsa6<1;=;731gsvrhng1jfvjnnu1744A59599
11.python很全的爬虫入门教程python爬虫学习python很全的爬虫入门教程 一、爬虫前的准备工作 首先,我们要知道什么是爬虫 1、什么是网络爬虫? 网络爬虫是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 简单的来说,网络爬虫就是一段程序,它模拟人类访问互联网的形式,不停地从网络上获取jvzquC41dnuh0lxfp0tfv8r2a5=:2?7521gsvrhng1jfvjnnu1>4;B9826