书上给举了这个例子 spa16.scrape.center/ 这应该是崔老师自己的站点,自己做的样例,强烈推荐,这本最新的爬虫书. 那么问题来了,我们是怎么知道它使用的是http/2.0呢,requests不能用吗?Python编程学习资料点击免费领取
打开浏览器 去检查元素,看network那个标签下,
看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"
pip3 install httpx
注意此时你的httpx还是不能访问h2的需要再安装一下
pip3 install 'httpx[http2]'
ok此时我们就已经安装好了
此时我们就很开心,发现用法api跟requests库一样,那我们来解决访问上面那个网站的问题吧
import httpx
r = httpx.get("https://spa16.scrape.center/")
print(r.text)
复制代码
得到结果:
精彩还是不行,问题就是这样,当你解决了一个问题,另一个问题就又会出现. 看书得知,httpx这个库默认是不支持h2的需要我们声明一下才好用. 声明如下:
import httpx
# 我们多了这行声明
client = httpx.Client(http2=True)
# 调用声明的对象去访问
r = client.get("https://spa16.scrape.center/")
print(r.text)
复制代码
据我的理解,跟session这个对象很想,session中文是回话,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。