Python爬虫从入门到放弃

python爬虫从入门到放弃之三:爬虫的基本流程

2019-07-16  本文已影响8人  52d19f475fe5

——前文说过,爬虫的本质是模拟浏览器,那么,浏览器做了什么,我们爬虫程序也跟着做什么!下面,我们来分析爬虫的基本流程。

爬虫的基本流程

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

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

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

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

什么是Request,Response

浏览器向服务器传达了我们想访问某个网页的需求,这个过程就叫做HTPP Request

服务器把你想要的网站数据发送给浏览器,这个过程就是HTTP Response

浏览器收到服务器的Response数据后,并不直接把数据丢给你。因为这些数据是用计算机的语言写的,浏览器还要把这些数据翻译成你能看得懂的样子,这个过程叫解析数据

Request中包含什么?

主要有:GET/POST两种类型常用

GET和POST的区别就是:请求的数据GET是在url中,POST则是存放在headers头部

GET:向指定的资源发出“显示”请求。使用GET方法用于读取数据

POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)

URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个数据都有一个唯一的URL,它包含的信息指出数据的位置以及浏览器应该怎么处理它。

爬虫爬取数据时必须要有一个目标的URL才可以获取数据,因此,它是爬虫获取数据的基本依据。

包含请求时的头部信息,如User-Agent,Host,Referer,Cookies等信息,下图是请求百度时,所有的请求头部信息参数

请求携带的数据,如GET请求加参数params,POST请求提交表单数据data

Response中包含什么?

有多种响应状态,如:200代表成功,301跳转,404找不到页面,502服务器错误

如内容类型,类型的长度,服务器信息,设置Cookie,如下图


最主要的部分,包含请求资源的内容,如网页HTMl,图片,二进制数据等

能爬取什么样的数据?

如何解析数据?

爬虫引发的问题————

限制爬虫的方法

Robots协议

Robots协议是互联网爬虫的一项公认的道德规范,它的全称是“网络爬虫排除标准”(Robots exclusion protocol),这个协议用来告诉爬虫,哪些页面是可以抓取的,哪些不可以。

如何查看网站的robots协议呢,很简单,在网站的域名后加上/robots.txt就可以了。

如下,京东robots协议


User-Agent表示爬虫类型,如User-agent: Baiduspider 表示百度爬虫,User-agent: Etaospider表示一淘爬虫

*是通配符,代表所有

Allow代表可以被访问,Disallow代表禁止被访问


>>>阅读更多文章请点击以下链接:

python爬虫从入门到放弃之一:认识爬虫
python爬虫从入门到放弃之二:HTML基础
python爬虫从入门到放弃之三:爬虫的基本流程
python爬虫从入门到放弃之四:Requests库基础
python爬虫从入门到放弃之五:Requests库高级用法
python爬虫从入门到放弃之六:BeautifulSoup库
python爬虫从入门到放弃之七:正则表达式
python爬虫从入门到放弃之八:Xpath

python爬虫从入门到放弃之九:Json解析
python爬虫从入门到放弃之十:selenium库
python爬虫从入门到放弃之十一:定时发送邮件
python爬虫从入门到放弃之十二:多协程
python爬虫从入门到放弃之十三:Scrapy概念和流程
python爬虫从入门到放弃之十四:Scrapy入门使用

上一篇 下一篇

猜你喜欢

热点阅读