成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Python兩大爬蟲庫—urllib庫和requests庫區(qū)別

開發(fā) 后端
本文基于Python基礎(chǔ),主要介紹了urllib庫和requests庫的區(qū)別。在使用urllib內(nèi)的request模塊時,返回體獲取有效信息和請求體的拼接需要decode和encode后再進(jìn)行裝載。進(jìn)行http請求時需先構(gòu)造get或者post請求再進(jìn)行調(diào)用,header等頭文件也需先進(jìn)行構(gòu)造。

[[400370]]

一、前言

在使用Python爬蟲時,需要模擬發(fā)起網(wǎng)絡(luò)請求,主要用到的庫有requests庫和python內(nèi)置的urllib庫,一般建議使用requests,它是對urllib的再次封裝。

那它們兩者有什么區(qū)別 ?

下面通過案例詳細(xì)的講解 ,了解他們使用的主要區(qū)別。

二、urllib庫

簡介:

urllib庫的response對象是先創(chuàng)建http,request對象,裝載到reques.urlopen里完成http請求。

返回的是http,response對象,實(shí)際上是html屬性。使用.read().decode()解碼后轉(zhuǎn)化成了str字符串類型,decode解碼后中文字符能夠顯示出來。

  1. from urllib import request 
  2. #請求頭 
  3. headers = { 
  4.     "User-Agent"'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36' 
  5. wd = {"wd""中國"
  6. url = "http://www.baidu.com/s?" 
  7. req = request.Request(url, headers=headers) 
  8. response = request.urlopen(req) 
  9. print(type(response)) 
  10. print(response) 
  11. res = response.read().decode() 
  12. print(type(res)) 
  13. print(res) 

運(yùn)行結(jié)果:

注意:

通常爬取網(wǎng)頁,在構(gòu)造http請求的時候,都需要加上一些額外信息,什么Useragent,cookie等之類的信息,或者添加代理服務(wù)器。往往這些都是一些必要的反爬機(jī)制。

三、requests庫

簡介:

requests庫調(diào)用是requests.get方法傳入url和參數(shù),返回的對象是Response對象,打印出來是顯示響應(yīng)狀態(tài)碼。

通過.text 方法可以返回是unicode 型的數(shù)據(jù),一般是在網(wǎng)頁的header中定義的編碼形式,而content返回的是bytes,二級制型的數(shù)據(jù),還有 .json方法也可以返回json字符串。

如果想要提取文本就用text,但是如果你想要提取圖片、文件等二進(jìn)制文件,就要用content,當(dāng)然decode之后,中文字符也會正常顯示。

requests的優(yōu)勢:

Python爬蟲時,更建議用requests庫。因?yàn)閞equests比urllib更為便捷,requests可以直接構(gòu)造get,post請求并發(fā)起,而urllib.request只能先構(gòu)造get,post請求,再發(fā)起。

例:

  1. import requests 
  2.  
  3. headers = { 
  4.     "User-Agent""Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36" 
  5. wd = {"wd""中國"
  6. url = "http://www.baidu.com/s?" 
  7. response = requests.get(url, params=wd, headers=headers) 
  8. data = response.text 
  9. data2 = response.content 
  10. print(response) 
  11. print(type(response)) 
  12. print(data) 
  13. print(type(data)) 
  14. print(data2) 
  15. print(type(data2)) 
  16. print(data2.decode()) 
  17. print(type(data2.decode())) 

運(yùn)行結(jié)果 (可以直接獲取整網(wǎng)頁的信息,打印控制臺):

四、總結(jié)

本文基于Python基礎(chǔ),主要介紹了urllib庫和requests庫的區(qū)別。

在使用urllib內(nèi)的request模塊時,返回體獲取有效信息和請求體的拼接需要decode和encode后再進(jìn)行裝載。進(jìn)行http請求時需先構(gòu)造get或者post請求再進(jìn)行調(diào)用,header等頭文件也需先進(jìn)行構(gòu)造。

requests是對urllib的進(jìn)一步封裝,因此在使用上顯得更加的便捷,建議在實(shí)際應(yīng)用當(dāng)中盡量使用requests。

希望能給一些對爬蟲感興趣,有一個具體的概念。方法只是一種工具,試著去爬一爬會更容易上手,網(wǎng)絡(luò)也會有很多的坑,做爬蟲更需要大量的經(jīng)驗(yàn)來應(yīng)付復(fù)雜的網(wǎng)絡(luò)情況。

希望大家一起探討學(xué)習(xí), 一起進(jìn)步。

 

責(zé)任編輯:姜華 來源: Python爬蟲與數(shù)據(jù)挖掘
相關(guān)推薦

2010-09-07 16:46:25

H.323SIP

2010-07-15 14:25:06

Perl時間函數(shù)

2010-09-16 09:33:33

CSS displayCSS display

2009-07-20 09:27:42

IBATIS.netDAO

2017-09-13 15:37:53

2018-10-15 16:30:14

數(shù)據(jù)庫索引Mysql

2015-07-09 09:34:24

2023-11-27 08:51:46

PythonRequests庫

2014-12-23 09:57:29

配線架

2009-06-12 16:24:44

Hibernate lHibernate g

2011-07-01 10:42:51

IIS解析漏洞

2009-11-30 16:55:10

微軟合作Novell

2020-11-10 22:46:41

圖形數(shù)據(jù)庫數(shù)據(jù)庫擴(kuò)展

2010-03-12 08:59:40

Python代碼

2010-09-10 09:42:37

borderclearCSS

2023-09-06 12:11:21

ChatGPT語言模型

2020-10-15 14:11:18

安全和隱私

2017-03-10 10:16:37

PythonRequests庫

2021-07-21 08:59:10

requestsPython協(xié)程

2010-09-14 17:27:12

DIV CSS定位
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品欧美 | 国产精品精品视频一区二区三区 | 亚洲欧美在线观看 | 黄网站在线观看 | 亚洲黄色成人网 | 中文字幕av亚洲精品一部二部 | 国产精品美女在线观看 | 99综合| 成人久久网| 亚洲一区二区三区观看 | 99久久精品免费看国产四区 | 欧美精品久久久久久久久久 | 99热热精品| 欧洲av在线 | 国产欧美日韩一区二区三区 | 日韩在线视频免费观看 | 一区免费| 亚洲啊v在线 | 精品国产免费人成在线观看 | 中文字字幕一区二区三区四区五区 | 黄色在线观看网站 | 国产剧情一区二区三区 | 亚洲福利在线观看 | 精品久久久久久亚洲综合网 | 色毛片| 人人做人人澡人人爽欧美 | 亚洲精品在线免费看 | 日本中文在线视频 | 国产一区二区三区 | 国产日韩欧美一区二区 | 三级黄色片在线播放 | 国产精品国产亚洲精品看不卡15 | 欧美1—12sexvideos | 涩涩视频网 | 伊人网综合 | 日本一道本视频 | 日韩在线 | 男人天堂网址 | 国产一区二区免费 | 一区二区精品 | 中文字幕在线观看国产 |