每天一点爬虫

Posted 向前跑,带着冷眼与嘲笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天一点爬虫相关的知识,希望对你有一定的参考价值。

  开始爬虫之旅。

认识爬虫

  网络爬虫(又被称为网页蜘蛛,网络机器人,spider),是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。通俗的讲就是通过程序自动去获取web页面上自己想要的数据。

  主要就是模拟浏览器打开网页,获取网页中我们想要的那部分数据。

  简单的说一下浏览器打开网页的过程:在浏览器中输入地址后,经过DNS服务器找到服务器主机,向服务器发送一个请求,服务器经过解析后发送给用户浏览器结果,包括html,js,css等文件内容,浏览器解析出来最后呈现给用户,最后就是用户看到的浏览器显示部分了。用户看到的浏览器的结果就是由HTML代码构成的,我们爬虫就是为了获取这些内容,通过分析和过滤html代码,从中获取我们想要资源。

  爬虫的基本流程主要分为4步:

  第一步、发起请求:通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应。

  第二步、获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型。

  第三步、解析内容:得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。

  第四步、保存数据:保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件。

  在发送请求阶段,请求方式主要有GET/POST两种类型,还有一些其他方式但是不常用。

  请求头包含User-Agent,Host,Cookies等信息,请求体是携带的数据,如提交表单数据时候的表单数据。

  服务器端会根据请求信息给出相应的响应,包括状态码,响应头和响应体,响应体里面就是我们请求的资源内容。

  从理论上来说,我们请求到什么资源就等于爬取什么样的资源,但是由于很多网站中的数据都是通过js,ajax动态加载的,所以直接通过get请求获取的页面和浏览器显示的不同。后面的随着学习的深入我们会有方法解决js渲染等问题。

  解析爬下来的数据的方式:

  1. 直接处理;
  2. Json解析;
  3. 正则表达式处理;
  4. BeautifulSoup解析处理;
  5. PyQuery解析处理;
  6. XPath解析处理。

  存储数据的方式:

  1. 文本:纯文本,Json,Xml等;
  2. 关系型数据库:如mysql,oracle,sql server等结构化数据库;
  3. 非关系型数据库:MongoDB,Redis等key-value形式存储。

  了解了爬虫是什么,接下来我们就开始爬虫之旅了。

以上是关于每天一点爬虫的主要内容,如果未能解决你的问题,请参考以下文章

python`最简单的爬虫`实现

我用Python爬取了五千张美女图壁纸,每天一张忘记初恋!

反爬虫

网络爬虫技术你知道多少?

爬虫实战:爬优美图库

江湖秘笈:世上居然还有爬虫技术不能到达的区域?Robots协议规范搜索引擎技术