第一步:安装requests

requests属于第三方模块,python里面没有自带requests库,所以呢第一步我们先要安装。

pip install requests

先找到终端然后再输入

第二步:导包

使用requests前出了安装完了,你好要导包啊,不导包怎么使用它呢

import requests

灰色代表他还没被使用

第三步:爬取开始

直接爬取百度吧

导包-----因为我们是给服务端发送请求,所以我们要有个变量接收他。

利用get获取网址的数据,然后用print输出网页的数据

这样输出的数据也没提示百度禁止访问,也不确定是不是百度禁止爬取。评论区等大佬教教我。但比较下面修改设置请求头后访问,还是下面的数据看起来比较对。

大家也注意到了,我后面有个headers参数,这是我设置了请求头。因为有很多网站禁止爬取,所以利用设置请求头,设置成一个网站可以访问的请求头来反爬数据。

简单讲讲怎么设置,这篇博客主要目的还是爬取,后面会出一篇设置请求头的文章。

运用python和request爬取百度的请求头

获取输出的请求头

因为我们使用python爬取数据,所以访问网站的用户代理User-Agant就是python

修改后获取输出的请求头

扩展一下:

有人使用postman测试接口

postman也可以转为代码在python运行

打开postman,创建新的请求路径,输入——点击</>,就会出来代码,可以选择各种语言的代码,既然要在python上运行,就选择python

加油加油加油兄弟们,努力学下去

学习补充:

获取状态码:status_code

成功控制台就返回200

请求一个不存在的网址

控制台输出404

获取网页的编码:encoding

这个网址的编码是utf-8

 

 获取消息体字节串内容:content

获取的内容是utf-8的编码,可以对其进行解码

 运用decode解码

呈现的内容不比上面顺眼多了

 如果想要获取里面单个的值,要对其反序列化,也就是把上面的json格式转换为Python的对象

一定要导入json包,import json,使用json的loads方法对其转换。

根据上面代码,现在获取的数据已经不是json格式就可以获取Host的值,不转换的话也可以获取,但是博主不会也很麻烦。

 如果大家觉得这样取值比较麻烦,又简单方法,但是还要转换json。直接对自己的创建的变量使用json方法就可以了。

 注意:获取的响应体里的内容必须是json格式,如果不是,就会报错。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐