北京湿疹医院哪最好 http://pf.39.net/bdfyy/bdfrczy/210405/8814564.html使用requests我们在了解了urllib的基本用法之后,发现其中确实有不方便的地方,比如在处理网页验证和Cookies时需要进行验证。为了更方便地实现这些操作,就有了更为强大的库requests,有了它,Cookies、登录验证、代理设置都不是问题。requests的基本用法首先确保已经安装好了requests库,我们可以使用pipinstallrequests来进行库的安装;urllib库中的urlopen()方法实际上是以GET方式请求网页,而requests中相应的方法就是get()方法,下面我们通过实例来看一下:运行结果如下:这里我们调用get()方法实现与urlopen()相同的操作,得到一个Response对象,然后分别输出了Response的类型、状态码、响应体类型、内容以及Cookies。通过运行可以发现,它的返回类型是requests.models.Response,响应体的类型是字符串str,Cookies的类型是RequestsCookieJar。使用get()方法成功实现了一个GET请求,更方便之处在于其他的请求类型依然可以使用一句话就可以完成,示例:这里分别用post()、put()、delete()等方法实现了POST、PUT、DELETE等请求,是不是比urllib方便太多了。GET请求HTTP中最常见的请求之一就是GET请求,下面首先来详细了解一下利用requests构建GET请求的方法。首先,构建一个最简单的GET请求:运行结果如下:可以发现,我们成功发起了GET请求,返回结果中包含请求头、URL、IP等信息。那么对于GET请求,如果要附加额外的信息,一般怎么添加呢?比如现在想添加两个参数,其中name是germey,age是24,要构造这个请求链接,是不是要直接写成:这样写也可以,但是是不是有点不人性化呢?一般情况下,这种信息数据会用字典来存储。那么,怎么来构造这个链接?这同样很简单,利用params这个参数就好了,示例如下:代码部分代码运行结果通过运行结果可以判断,请求的链接自动被构造成了我们第一种方法构成的链接。另外,网页的返回类型实际上是str类型,但是它很特殊,是JSON格式的。所以,如果想直接解析返回结果,得到一个字典格式的话,可以直接调用json()方法。示例如下:运行结果如下:可以发现,调用json()方法,就可以将返回结果是JSON格式的字符串转化为字典。但需要注意的是如果返回结果不是JSON格式,便会出现解析错误,抛出json.decoder.JSONDecodeError异常。抓取网页上面的请求链接返回的JSON形式的字符串,那么如果请求普通的网页,则肯定能获得相应的内容了,下面以“知乎”-“发现”页面为例看一下:这里我们加入了headers信息,其中包含了User-Agent字段信息,也就是浏览器标识信息。如果不加这个,知乎会禁止我们抓取。接下来我们用到了最基础的正则表达式来匹配所有问题内容。关于正则表达式,我们后面会详细介绍,运行结果如下:我们发现成功提取了所有问题的内容。
转载请注明:http://www.aierlanlan.com/grrz/5315.html