美文网首页
爬虫基本原理

爬虫基本原理

作者: ivan_cq | 来源:发表于2019-01-30 01:06 被阅读0次

  • 什么是爬虫?
    请求网站并提取数据的自动化程序。
    (写代码模拟浏览器向服务器发送请求,然后获取网络资源。一般来说获取到的网络资源是一段html代码,包含html标签还有在浏览器中看到的一些文字。要提取的数据就包含在html文本里。我们要做的就是从这个文本里提取出我们想要的信息。提取出来之后存储。)

  • 网页查看
    打开一个网页,右键鼠标,显示Elements是网页的源代码。


  • 爬虫的基本流程

1、发起请求
通过http库向目标站点发起请求,发送一个Request,请求可以包含额外的headers等的信息,等待服务器响应。
2、获取响应内容
服务器正常响应的话会得到一个reponse,reponse的内容便是所要获取的页面的内容,类型可能是HTML、json字符串,二进制数据如图片视频等。
3、解析网页内容
得到的内容可能是HTML格式可以用正则表达式、网页解析库进行解析。可能是json格式,可以直接转为json对象解析,可能是二进制数据,可以保存做进一步处理。
4、保存数据
保存成文本也可以存到数据库,或者保存为特定格式。


  • Request
    1、请求方式
    使用get请求方式,请求内容包含在url里。

使用post请求,请求参数不在url里面,请求体在新的fromdata里,url里不包含信息


2、统一资源定位符url
一个图片、一个视频都可以用url唯一指定。

3、请求头
包含比较重要的配置信息。如user-agent、host、cookies等信息。


4、请求体,get形式没有请求体。
post以fromdata形式提交请求体。

  • Reponse

1、响应状态
状态码:
200正常
301以上跳转
404找不到资源
502以上,服务器处理错误

2、响应头
键值对的Reponse Headers
如内容类型、内容长度、服务器信息、设设置cookies等等。
3、响应体
最主要的部分,包含了请求资源的内容,如网页HTML,图片,二进制数据等。


  • 能抓怎样的数据?
    1、网页文本如HTML、Json等
    2、图片、视频是二进制文件,保存为图片格式。

  • 怎样来解析?
    1、直接处理
    网页是简单的字符串
    2、Json解析(json格式的字符串)结构化的数据,通过ajex进行加载的。
    3、正则表达式
    4、beautifulsoup解析库进行解析
    5、pyquery库
    6、XPath库


  • 为什么抓到的数据和浏览器的数据不一样呢?
    用库和用浏览器拿到不一样的源代码。

  • 怎样解决js的渲染问题
    1、分析Ajax请求(返回jason格式字符串)
    2、使用selenium/webdriver模拟js渲染
    3、Splash

  • 怎样保存数据?
    1、纯文本
    2、保存到关系型数据库,结构化的数据,每一条数据都有统一的字段。
    mysql、oracle、sql server
    3、非关系型数据库
    key-value形式,列表形式的结构。
    4、二进制文件,保存成特定格式。

相关文章

网友评论

      本文标题:爬虫基本原理

      本文链接:https://www.haomeiwen.com/subject/pawwjqtx.html