Python爬虫学习记录- httpx库的使用

示例展示

书上给举了这个例子 spa16.scrape.center/ 这应该是崔老师自己的站点,自己做的样例,强烈推荐,这本最新的爬虫书. 那么问题来了,我们是怎么知道它使用的是http/2.0呢,requests不能用吗?Python编程学习资料点击免费领取

首先解决第一个问题 http/2.0

打开浏览器 去检查元素,看network那个标签下,

Python爬虫学习记录- httpx库的使用_第1张图片

看Protocol这个清一色的h2 就是强制使用https/2.0 咱们去访问一个普通的,比如掘金

可以发现有h2,也有http/1.1 好我们解决了这个问题来试试requests库可以请求吗?

import requests

r = requests.get("https://spa16.scrape.center/")
print(r.status_code)
print(r.text)
复制代码

得到是报错信息,我就不贴了,运行一下上面代码就能行了. RemoteDisconnected("Remote end closed connection without"

解决问题

安装httpx库

pip3 install httpx 注意此时你的httpx还是不能访问h2的需要再安装一下

pip3 install 'httpx[http2]'

ok此时我们就已经安装好了

基本用法

此时我们就很开心,发现用法api跟requests库一样,那我们来解决访问上面那个网站的问题吧

import httpx

r = httpx.get("https://spa16.scrape.center/")

print(r.text)
复制代码

得到结果:

Python爬虫学习记录- httpx库的使用_第2张图片

精彩还是不行,问题就是这样,当你解决了一个问题,另一个问题就又会出现. 看书得知,httpx这个库默认是不支持h2的需要我们声明一下才好用. 声明如下:

import httpx

# 我们多了这行声明
client = httpx.Client(http2=True)
# 调用声明的对象去访问
r = client.get("https://spa16.scrape.center/")

print(r.text)
复制代码

新的问题出现 client对象又是什么

据我的理解,跟session这个对象很想,session中文是回话,client中文是客户端

client对象

上代码: 这是官方的写法

import httpx

with httpx.Client() as client:
    r = client.get("https://www.httpbin.org/get")
    print(r)
复制代码


①3000多本Python电子书有
②Python开发环境安装教程有
③Python400集自学视频有
④软件开发常用词汇有
⑤Python学习路线图有
⑥项目源码案例分享有

如果你用得到的话可以直接拿走,在我的QQ技术交流群里(技术交流和资源共享,广告勿入)可以自助拿走,群号是895937462。

你可能感兴趣的:(程序人人生,python,开发语言,后端)