爬虫基本原理——小白第一周学习笔记(1)

爬虫基本原理

1.什么是爬虫?

请求网站并提取数据的自动化程序

    • 请求:模拟浏览器向服务器请求资源
    • 提取:从html代码中提取出想要的信息,数据采集
    • 自动化:自动,循环运行,批量获取数据

2.爬虫基本流程(重点)

  • 发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。
  • 获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML,Json字符串,二进制数据(如图片视频)等类型。
  • 解析内容:得到的内容可能是HTML,可以用正则表达式,网页解析库进行解析;可能是Json,可以直接转为Json对象解析;可能是二进制数据,可以做保存或者进一步的处理。
  • 保存数据:保存形式多样,可以存为文本,也可以保存至数据库,或者保存为特定格式的文件。

3.Request中包含什么?

  • 请求方式:主要有GET、POST两种类型,另外还有HEAD、PUT、DELETE、OPTIONS等。(GET请求将请求参数放在URL后面;POST多了一个Form Data部分,请求参数在此部分中。)
  • 请求URL:URL全称统一资源定位符,如一个网页文档、一张图片、一个视频等都可以用URL唯一来确定。
  • 请求头:包含请求时的头部信息,如User-Agent(指定浏览器请求头使服务器识别浏览器)、Host、Cookies(保持登录会话)等信息。
  • 请求体:请求时额外携带的数据,如表单提交时的表单数据。(GET方式下一般不携带数据,POST方式下一般为Form Data)

4.Response中包含什么?

  • 响应状态:有多种响应状态,如200代表成功、301跳转、404找不到页面、502服务器错误。
  • 响应头:如内容类型,内容长度,服务器信息,设置Cookie等等。
  • 响应体:最主要的部分,包含了请求资源的内容,如网页HTML,图片二进制数据等。

5.能抓怎样的数据?

  • 网页文本:如HTML文档、Json格式文本等。
  • 图片:获取到的是二进制文件,保存为图片格式。
  • 视频:同为二进制文件,保存为视频格式即可。
  • 其他:只要是能请求到的,都能获取。

 


 

6.解析方式:直接处理,Json解析,正则表达式,BeautifulSoup,PyQuery,XPath

 


 

7.为什么抓到的和浏览器看到的不一样?

      浏览器中看到的数据是经过JS渲染,在后台接口得到的。

 


 

8.怎样解决JavaScript渲染的问题?

  • 分析Ajax请求,返回Json格式字符串(较方便)
  • 使用Selenium/WebDriver驱动浏览器模拟加载网页
  • Splash库模拟JS渲染
  • PyV8Ghost.py

 


 

9.怎样保存数据?

  • 文本:纯文本、JsonXml等。
  • 关系型数据库:如MySQLOracleSQL Server等具有结构化表结构形式存储。
  • 非关系型数据库:如MongoDBRedisKey-Value形式存储。
  • 二进制文件:如图片、视频、音频等等直接保存成特定格式即可。

 

猜你喜欢

转载自www.cnblogs.com/priester-three/p/12291680.html