一、httpx模塊是什么?
一個用于http請求的模塊,類似于requests、aiohttp;
既能發(fā)送同步請求(是指在單進(jìn)程單線程的代碼中,發(fā)起一次請求后,在收到返回結(jié)果之前,不能發(fā)起下一次請求),又能發(fā)送異步請求(是指在單進(jìn)程單線程的代碼中,發(fā)起一次請求后,在等待網(wǎng)站返回結(jié)果的時間里,可以繼續(xù)發(fā)送更多請求)。
二、httpx模塊基礎(chǔ)使用
2.1 httpx模塊安裝
pip install httpx
2.2 httpx模塊基礎(chǔ)使用
1
2
3
4
5
|
import httpx res = httpx.get( 'http://www.hnxmxit.com/' ) print ( res.status_code ) print ( res.headers ) print ( res.content.decode( 'utf8' ) ) |
上述代碼是通過httpx模塊發(fā)送一個打開網(wǎng)站首頁的情況,然后返回狀態(tài)碼、響應(yīng)頭信息的例子,讀者應(yīng)該發(fā)現(xiàn)和requests很像。
2.2 模擬請求頭
1
2
3
4
5
6
7
8
9
10
|
import httpx get_param_data = { 'wd' : '湖南軟測' } headinfos = { 'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/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相同
三、小結(jié):
- requests 和 httpx都能模擬發(fā)送請求
- 具一些大神測試后,httpx由于支持異步請求,所以發(fā)送大量的請求時,httpx的效率是優(yōu)于requests的
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。
原文鏈接:https://www.cnblogs.com/dream66/p/13237252.html