Python基于httpx模块实现发送请求
一、httpx模块是什么?
一个用于http请求的模块,类似于requests、aiohttp;
既能发送同步请求(是指在单进程单线程的代码中,发起一次请求后,在收到返回结果之前,不能发起下一次请求),又能发送异步请求(是指在单进程单线程的代码中,发起一次请求后,在等待网站返回结果的时间里,可以继续发送更多请求)。
二、httpx模块基础使用
2.1httpx模块安装
pipinstallhttpx
2.2httpx模块基础使用
importhttpx res=httpx.get('http://www.hnxmxit.com/') print(res.status_code) print(res.headers) print(res.content.decode('utf8'))
上述代码是通过httpx模块发送一个打开网站首页的情况,然后返回状态码、响应头信息的例子,读者应该发现和requests很像。
2.2模拟请求头
importhttpx get_param_data={'wd':'湖南软测'} headinfos={'User-Agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_13_6)AppleWebKit/537.36(KHTML,likeGecko)Chrome/68.0.3440.106Safari/537.36', 'Accept-Encoding':'gzip,deflate,br', 'Accept-Language':'zh-CN,zh;q=0.9', 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' } response=httpx.get(url='https://www.baidu.com/s',params=get_param_data,headers=headinfos) print(response.content.decode('utf-8'))
上述代码完成在百度中搜索湖南软测的例子,其实写法完全和requests相同
三、小结:
- requests和httpx都能模拟发送请求
- 具一些大神测试后,httpx由于支持异步请求,所以发送大量的请求时,httpx的效率是优于requests的
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。