色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍

千鋒教育-做有情懷、有良心、有品質的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > Python爬蟲庫urllib使用詳解!

Python爬蟲庫urllib使用詳解!

來源:千鋒教育
發(fā)布人:wjy
時間: 2023-01-10 10:06:00 1673316360

  Python爬蟲庫urllib使用詳解!

  一、Python urllib庫

  Python urllib 庫用于操作網頁 URL,并對網頁的內容進行抓取處理。

  Python3 的 urllib。

  urllib 包 包含以下幾個模塊:

  ●urllib.request - 打開和讀取 URL。

  ●urllib.error - 包含 urllib.request 拋出的異常。

  ●urllib.parse - 解析 URL。

  ●urllib.robotparser - 解析 robots.txt 文件。

  二、urllib.request模塊

  urllib.request 定義了一些打開 URL 的函數(shù)和類,包含授權驗證、重定向、瀏覽器 cookies等。

  urllib.request 可以模擬瀏覽器的一個請求發(fā)起過程。

  這里主要介紹兩個常用方法,urlopen和Request。

  1.urlopen函數(shù)

  語法格式如下:

Python爬蟲庫urllib使用詳解1

  url:url 地址。

  data:發(fā)送到服務器的其他數(shù)據(jù)對象,默認為 None。

  timeout:設置訪問超時時間。

  cafile 和 capath:cafile 為 CA 證書, capath 為 CA 證書的路徑,使用 HTTPS 需要用到。

  cadefault:已經被棄用。

  context:ssl.SSLContext類型,用來指定 SSL 設置。

  示例:

Python爬蟲庫urllib使用詳解2

  運行結果:

Python爬蟲庫urllib使用詳解3

  response對象是http.client. HTTPResponse類型,主要包含 read、readinto、getheader、getheaders、fileno 等方法,以及 msg、version、status、reason、debuglevel、closed 等屬性。

  常用方法:

  read():是讀取整個網頁內容,也可以指定讀取的長度,如read(300)。獲取到的是二進制的亂碼,所以需要用到decode()命令將網頁的信息進行解碼。

  readline() - 讀取文件的一行內容。

  readlines() - 讀取文件的全部內容,它會把讀取的內容賦值給一個列表變量。

  info():返回HTTPMessage對象,表示遠程服務器返回的頭信息。

  getcode():返回Http狀態(tài)碼。如果是http請求,200請求成功完成;404網址未找到。

  geturl():返回請求的url。

  2、Request類

  我們抓取網頁一般需要對 headers(網頁頭信息)進行模擬,否則網頁很容易判定程序為爬蟲,從而禁止訪問。這時候需要使用到 urllib.request.Request 類:

Python爬蟲庫urllib使用詳解4

  url:url 地址。

  data:發(fā)送到服務器的其他數(shù)據(jù)對象,默認為 None。

  headers:HTTP 請求的頭部信息,字典格式。

  origin_req_host:請求的主機地址,IP 或域名。

  unverifiable:很少用整個參數(shù),用于設置網頁是否需要驗證,默認是False。。

  method:請求方法, 如 GET、POST、DELETE、PUT等。

  示例:

Python爬蟲庫urllib使用詳解5

  三、urllib.error模塊

  urllib.error 模塊為 urllib.request 所引發(fā)的異常定義了異常類,基礎異常類是 URLError。

  urllib.error 包含了兩個方法,URLError 和 HTTPError。

  URLError 是 OSError 的一個子類,用于處理程序在遇到問題時會引發(fā)此異常(或其派生的異常),包含的屬性 reason 為引發(fā)異常的原因。

  HTTPError 是 URLError 的一個子類,用于處理特殊 HTTP 錯誤例如作為認證請求的時候,包含的屬性 code 為 HTTP 的狀態(tài)碼, reason 為引發(fā)異常的原因,headers 為導致 HTTPError 的特定 HTTP 請求的 HTTP 響應頭。

  區(qū)別:

  URLError封裝的錯誤信息一般是由網絡引起的,包括url錯誤。

  HTTPError封裝的錯誤信息一般是服務器返回了錯誤狀態(tài)碼。

  關系:

  URLError是OSERROR的子類,HTTPError是URLError的子類。

  1.URLError 示例

Python爬蟲庫urllib使用詳解6

  返回結果:

Python爬蟲庫urllib使用詳解7

  reason:

  此錯誤的原因。它可以是一個消息字符串或另一個異常實例。

  2.HTTPError示例

Python爬蟲庫urllib使用詳解8

  返回結果:

Python爬蟲庫urllib使用詳解9

  code

  一個 HTTP 狀態(tài)碼,具體定義見 RFC 2616。這個數(shù)字的值對應于存放在

  http.server.BaseHTTPRequestHandler.responses 代碼字典中的某個值。

  reason

  這通常是一個解釋本次錯誤原因的字符串。

  headers

  導致 HTTPError 的特定 HTTP 請求的 HTTP 響應頭。

  3.URLError和HTTPError混合使用

  注意:由于HTTPError是URLError的子類,所以捕獲的時候HTTPError要放在URLError的上面。

  示例:

Python爬蟲庫urllib使用詳解10

  如果不用上面的方法,可以直接用判斷的形式。

Python爬蟲庫urllib使用詳解11

  執(zhí)行結果:

Python爬蟲庫urllib使用詳解12

  四、urllib.parse模塊

  模塊定義的函數(shù)可分為兩個主要門類: URL 解析和 URL 轉碼。

  4.1 URL 解析

  4.1.1 urlparse()

  urllib.parse 用于解析 URL,格式如下:

Python爬蟲庫urllib使用詳解13

  urlstring 為 字符串的 url 地址,scheme 為協(xié)議類型。

  allow_fragments 參數(shù)為 false,則無法識別片段標識符。相反,它們被解析為路徑,參數(shù)或查詢組件的一部分,并 fragment 在返回值中設置為空字符串。

  標準鏈接格式為:

Python爬蟲庫urllib使用詳解14

  對象中包含了六個元素,分別為:協(xié)議(scheme)、域名(netloc)、路徑(path)、路徑參數(shù)(params)、查詢參數(shù)(query)、片段(fragment)。

  示例:

Python爬蟲庫urllib使用詳解15

  執(zhí)行結果:

Python爬蟲庫urllib使用詳解16

  以上還可以通過索引獲取,如通過

Python爬蟲庫urllib使用詳解17

  4.1.2 urlunparse()

  urlunparse()可以實現(xiàn)URL的構造。(構造URL)

  urlunparse()接收一個是一個長度為6的可迭代對象,將URL的多個部分組合為一個URL。若可迭代對象長度不等于6,則拋出異常。

  示例:

Python爬蟲庫urllib使用詳解18

  結果:

Python爬蟲庫urllib使用詳解19

  4.1.3 urlsplit()

  urlsplit() 函數(shù)也能對 URL 進行拆分,所不同的是, urlsplit() 并不會把 路徑參數(shù)(params) 從 路徑(path) 中分離出來。

  當 URL 中路徑部分包含多個參數(shù)時,使用 urlparse() 解析是有問題的,這時可以使用 urlsplit() 來解析.

  4.1.4 urlsplit()

  urlunsplit()與 urlunparse()類似,(構造URL),傳入對象必須是可迭代對象,且長度必須是5。

  示例:

Python爬蟲庫urllib使用詳解20

  結果:

Python爬蟲庫urllib使用詳解21

  4.1.5 urljoin()

  同樣可以構造URL。

  傳遞一個基礎鏈接,根據(jù)基礎鏈接可以將某一個不完整的鏈接拼接為一個完整鏈接.

  注:連接兩個參數(shù)的url, 將第二個參數(shù)中缺的部分用第一個參數(shù)的補齊,如果第二個有完整的路徑,則以第二個為主。

  4.2 URL 轉碼

  python中提供urllib.parse模塊用來編碼和解碼,分別是urlencode()與unquote()。

  4.2.1 編碼quote(string)

  URL 轉碼函數(shù)的功能是接收程序數(shù)據(jù)并通過對特殊字符進行轉碼并正確編碼非 ASCII 文本來將其轉為可以安全地用作 URL 組成部分的形式。它們還支持逆轉此操作以便從作為 URL 組成部分的內容中重建原始數(shù)據(jù),如果上述的 URL 解析函數(shù)還未覆蓋此功能的話

  語法:

Python爬蟲庫urllib使用詳解22

  使用 %xx 轉義符替換 string 中的特殊字符。字母、數(shù)字和 '_.-~' 等字符一定不會被轉碼。在默認情況下,此函數(shù)只對 URL 的路徑部分進行轉碼。可選的 safe 形參額外指定不應被轉碼的 ASCII 字符 --- 其默認值為 '/'。

  string 可以是 str 或 bytes 對象。

  示例:

Python爬蟲庫urllib使用詳解23

  執(zhí)行結果:

Python爬蟲庫urllib使用詳解24

  4.2.2 編碼urlencode()

  quote()只能對字符串編碼,而urlencode()可以對查詢字符串進行編碼。

Python爬蟲庫urllib使用詳解25

  結果:

Python爬蟲庫urllib使用詳解26

  4.2.3 解碼unquote(string)

  解碼就是對編碼后的url進行還原。

  示例:

Python爬蟲庫urllib使用詳解27

  執(zhí)行結果:

Python爬蟲庫urllib使用詳解28

  五、urllib.robotparser模塊

  (在網絡爬蟲中基本不會用到,使用較少,僅作了解)

  urllib.robotparser 用于解析 robots.txt 文件。

  robots.txt(統(tǒng)一小寫)是一種存放于網站根目錄下的 robots 協(xié)議,它通常用于告訴搜索引擎對網站的抓取規(guī)則。

  Robots協(xié)議也稱作爬蟲協(xié)議,機器人協(xié)議,網絡爬蟲排除協(xié)議,用來告訴爬蟲哪些頁面是可以爬取的,哪些頁面是不可爬取的。它通常是一個robots.txt的文本文件,一般放在網站的根目錄上。

  當爬蟲訪問一個站點的時候,會首先檢查這個站點目錄是否存在robots.txt文件,如果存在,搜索爬蟲會根據(jù)其中定義的爬取范圍進行爬取。如果沒有找到這個文件,搜索爬蟲會訪問所有可直接訪問的頁面。

  urllib.robotparser 提供了 RobotFileParser 類,語法如下:

Python爬蟲庫urllib使用詳解29

  這個類提供了一些可以讀取、解析 robots.txt 文件的方法:

  set_url(url) - 設置 robots.txt 文件的 URL。

  read() - 讀取 robots.txt URL 并將其輸入解析器。

  parse(lines) - 解析行參數(shù)。

  can_fetch(useragent, url) - 如果允許 useragent 按照被解析 robots.txt 文件中的規(guī)則來獲取 url 則返回 True。

  mtime() -返回最近一次獲取 robots.txt 文件的時間。這適用于需要定期檢查 robots.txt 文件更新情況的長時間運行的網頁爬蟲。

  modified() - 將最近一次獲取 robots.txt 文件的時間設置為當前時間。

  crawl_delay(useragent) -為指定的 useragent 從 robots.txt 返回 Crawl-delay 形參。如果此形參不存在或不適用于指定的 useragent 或者此形參的 robots.txt 條目存在語法錯誤,則返回 None。

  request_rate(useragent) -以 named tuple RequestRate(requests, seconds) 的形式從 robots.txt 返回 Request-rate 形參的內容。如果此形參不存在或不適用于指定的 useragent 或者此形參的 robots.txt 條目存在語法錯誤,則返回 None。

  site_maps() - 以 list() 的形式從 robots.txt 返回 Sitemap 形參的內容。如果此形參不存在或者此形參的 robots.txt 條目存在語法錯誤,則返回 None。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業(yè)內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
適合三農領域的名字?有何技巧?

現(xiàn)在在抖音上很多博主會選擇直播來賺取更多的流量以及利潤,直播間的東西也有很多讓消費者信任并且喜歡的,而且隨著越來越多人直播,很多農產品...詳情>>

2023-09-19 07:06:05
抖店商品發(fā)布違規(guī)怎么申訴?有何規(guī)則?

抖店服務市場服務商發(fā)布違禁信息如何處理?情節(jié)嚴重程度判定原則:違規(guī)嚴重等級主要通過服務商違規(guī)次數(shù)、造成后果的嚴重程度、獲利或導致?lián)p失的...詳情>>

2023-09-19 06:59:55
“泛垂直起號”可能是2023年最高效的起號方式

這可能是明年最好用的旗號方式了,今天教大家一個很野,但是可以讓你三天漲1000粉的偏方。去年前年啊,每個人都教你,誰知七號對著自己的產品拍...詳情>>

2023-09-19 06:37:38
做直播怎么賣自己的貨怎么上鏈接?能賺錢嗎?

直播賣貨是時下非常火的一個行業(yè),我們的產品可以放到網上賣,也可以在網上做直播。現(xiàn)在的直播平臺也是很多的,基本不愁沒有銷路。如果想要賣自...詳情>>

2023-09-19 06:28:26
比較適合新手的3個不用出境的領域

隨著短視頻行業(yè)盛勢發(fā)展,越來越多的年輕人也想要投入這行,但又苦于不想出鏡。抖音短視頻 for Android V24.8.0 安卓手機版類型:影音播放大小...詳情>>

2023-09-19 06:06:39
開班信息
北京校區(qū)
  • 北京校區(qū)
  • 大連校區(qū)
  • 廣州校區(qū)
  • 成都校區(qū)
  • 杭州校區(qū)
  • 長沙校區(qū)
  • 合肥校區(qū)
  • 南京校區(qū)
  • 上海校區(qū)
  • 深圳校區(qū)
  • 武漢校區(qū)
  • 鄭州校區(qū)
  • 西安校區(qū)
  • 青島校區(qū)
  • 重慶校區(qū)
  • 太原校區(qū)
  • 沈陽校區(qū)
  • 南昌校區(qū)
  • 哈爾濱校區(qū)
色综合老司机第九色激情 _中文字幕日韩av资源站_国产+人+亚洲_久久久精品影院_久久久视频免费观看_欧美激情亚洲自拍_亚洲成av人片在线观看香蕉_热草久综合在线_欧美极品第一页_2020国产精品自拍
国产日韩欧美亚洲| 成人精品一区二区三区中文字幕| 成人免费在线视频观看| 狠狠色综合播放一区二区| 欧美日韩精品欧美日韩精品一综合| 精品成人一区二区三区四区| 舔着乳尖日韩一区| 欧美亚洲图片小说| 亚洲国产成人91porn| 欧美日韩电影在线| 日韩精品每日更新| 91精品国产色综合久久ai换脸 | 26uuu精品一区二区三区四区在线| 日韩专区欧美专区| 久久综合九色欧美综合狠狠| 粉嫩一区二区三区在线看| 亚洲免费观看高清完整版在线观看| 91原创在线视频| 亚洲午夜电影在线观看| 日韩免费观看高清完整版 | 韩国毛片一区二区三区| 欧美国产1区2区| 日韩精品一区二区三区在线观看 | 国产一区二区三区日韩| |精品福利一区二区三区| 欧美变态tickling挠脚心| 成人久久久精品乱码一区二区三区| 亚洲电影在线免费观看| 国产精品你懂的| 国产日韩欧美激情| 精品国产百合女同互慰| 91精品婷婷国产综合久久性色| 91啪九色porn原创视频在线观看| 国产美女在线精品| 国产一区中文字幕| 日韩1区2区3区| 久久精品国产久精国产| 午夜私人影院久久久久| 日韩国产欧美在线播放| 午夜伦欧美伦电影理论片| 一区二区三区在线观看视频| 亚洲自拍另类综合| 亚洲国产一区二区三区青草影视| 国产午夜精品一区二区三区嫩草 | 91精品国产丝袜白色高跟鞋| 欧美在线视频全部完| 欧美一区二区在线免费观看| 精品少妇一区二区三区在线播放| 911精品产国品一二三产区| 欧美福利视频一区| 日韩一级大片在线观看| 国产精品久久久久久久久久久免费看 | 亚洲啪啪综合av一区二区三区| 中文字幕制服丝袜成人av| 亚洲一区二三区| 青青草伊人久久| 国产69精品久久久久毛片| 欧美视频中文字幕| 国产人成一区二区三区影院| 亚洲国产精品综合小说图片区| 九九国产精品视频| 欧美日韩亚洲综合一区 | 国产乱码精品一区二区三区忘忧草 | 7777精品伊人久久久大香线蕉超级流畅 | 国产成人精品亚洲777人妖| 欧美综合天天夜夜久久| 亚洲欧美综合色| 国产一区中文字幕| 精品视频一区二区三区免费| 国产精品国模大尺度视频| 国产成人免费xxxxxxxx| 中文av一区二区| 欧美久久婷婷综合色| 日本成人中文字幕在线视频| 久久众筹精品私拍模特| aaa亚洲精品一二三区| 日韩久久一区二区| 欧美一区二区在线不卡| 美美哒免费高清在线观看视频一区二区| 5858s免费视频成人| 成人激情文学综合网| 亚洲777理论| 日韩一区二区三区观看| 国产中文字幕一区| 亚洲欧美一区二区三区国产精品| 在线这里只有精品| 国内成人精品2018免费看| 亚洲午夜成aⅴ人片| 国产精品久久久99| 激情综合网av| 日韩欧美国产成人一区二区| 在线中文字幕一区| 色婷婷狠狠综合| 狠狠久久亚洲欧美| 日韩高清不卡在线| 亚洲综合色区另类av| 亚洲人成网站影音先锋播放| 国产清纯白嫩初高生在线观看91 | 一区二区三区成人| 亚洲国产成人私人影院tom| 欧美变态凌虐bdsm| 亚洲精品一区二区三区精华液 | 欧美极品美女视频| 精品日产卡一卡二卡麻豆| 日韩欧美国产综合一区| 欧美成人精品高清在线播放 | 成人性色生活片| 国产精品白丝jk黑袜喷水| 婷婷中文字幕一区三区| 国产一区中文字幕| 在线精品视频免费播放| 这里只有精品免费| 国产午夜一区二区三区| 日韩制服丝袜av| 一本色道**综合亚洲精品蜜桃冫| 欧美日韩在线播| 欧美精品一区二区蜜臀亚洲| 成人一二三区视频| 91免费看片在线观看| 国产在线精品视频| 国产99一区视频免费| 国产盗摄精品一区二区三区在线| 狠狠色丁香久久婷婷综合_中| 亚洲欧美偷拍卡通变态| 一区二区三区四区蜜桃| 亚洲电影一级片| 日韩精品一二区| 国产老女人精品毛片久久| 99久久精品免费| 日韩欧美一区中文| 国产精品每日更新在线播放网址| 亚洲狠狠丁香婷婷综合久久久| 亚洲 欧美综合在线网络| 韩国v欧美v亚洲v日本v| 99精品久久只有精品| 欧美日韩国产片| 国产欧美日韩中文久久| 日本女优在线视频一区二区| 91网站在线播放| 欧美国产乱子伦| 国模一区二区三区白浆| 欧美一区二区女人| 亚洲另类春色校园小说| 国产精品1024久久| 一本大道久久a久久综合婷婷| 久久蜜桃香蕉精品一区二区三区| 一区二区三区欧美视频| 成人激情黄色小说| 久久久久久久久久久久久女国产乱 | 欧美日韩国产一级| 亚洲成a人片在线不卡一二三区| 一区二区三区美女| 国产一区二区三区在线观看免费视频| 成人高清av在线| 日韩无一区二区| 五月天亚洲精品| 在线观看视频一区二区欧美日韩| 椎名由奈av一区二区三区| av电影一区二区| 亚洲品质自拍视频| 欧美亚日韩国产aⅴ精品中极品| 亚洲免费av在线| 97久久精品人人做人人爽| 亚洲一区中文日韩| 日韩三级视频在线观看| 成人av在线网站| 亚洲国产精品一区二区www| 宅男噜噜噜66一区二区66| 精品一区二区三区视频在线观看| 欧美视频精品在线观看| 中文字幕日韩一区| 欧美一级xxx| av影院午夜一区| 亚洲成人手机在线| 国产区在线观看成人精品| 色屁屁一区二区| 国产ts人妖一区二区| 婷婷一区二区三区| 亚洲欧美另类久久久精品2019| 91麻豆国产福利精品| 韩国成人在线视频| 午夜私人影院久久久久| 日韩精品最新网址| 欧美日韩精品福利| 一本色道久久综合亚洲aⅴ蜜桃| 国产一区二区毛片| 日本不卡不码高清免费观看| 亚洲国产欧美在线| 亚洲一二三区在线观看| 亚洲美女偷拍久久| 精东粉嫩av免费一区二区三区| 亚洲精品一区二区三区四区高清| 一区二区三区视频在线看| 毛片av一区二区三区| 精品国产百合女同互慰| 婷婷成人激情在线网| 欧美一卡二卡三卡| 免费久久99精品国产| 欧美日韩高清一区二区| 国产精品视频线看|