日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python urllib模块

發布時間:2023/12/14 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python urllib模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

urllib模塊

  • urllib.request模塊
    • 版本介紹
    • 常用方法
    • 響應對象
  • urllib.parse模塊
    • 常用方法
  • 請求方式

urllib.request模塊

版本介紹

  • 在python3.0之前,通常為urllib2、urllib結合使用
  • python3把urllib和urllib2合并成urllib.request

常用方法

  • urllib.request.urlopen(url):向url發送請求并獲取響應
    • 得到響應之后,response.read() -> 得到網頁內容,編碼為bytes
    • 使用response.read().decode('utf-8')可以得到以字符串為編碼的網頁內容
    • 代碼舉例import urllib.requesthtml = urllib.request.urlopen('https://818ps.com/muban/biaoqingbao.html?user_source=r416508&sdclkid=b52pALol15jpALAR&bd_vid=8269777356919846594') print(html.read().decode('utf-8'))
  • 針對一些反爬機制,有時我們可能需要添加headers參數,但是urllib.request.urlopen()不能增加這個參數,所以需要用到urllib.request.Request()方法
    • 步驟
      • 1、創建請求對象
      • 2、發送請求并獲取響應
      • 3、打印網頁內容
    • 代碼舉例import urllib.requesturl = 'https://www.baidu.com' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'} # 1、創建請求對象 html = urllib.request.Request(url, headers=headers) # 2、響應對象 response = urllib.request.urlopen(html) # 3、獲取網頁內容 print(response.read().decode('utf-8'))

響應對象

  • read() -> 讀取服務器響應的內容
  • getcode() -> 返回HTTP的響應碼
  • geturl() -> 返回實際數據的URL(防止重定向問題)

urllib.parse模塊

常用方法

  • urllib.parse.urlencode(參數:字典) -> 將字符串轉換成形如%E6%9F%AF%E5%8D%97
    • 代碼示例import urllib.request import urllib.parse# https://www.baidu.com/s?wd=%E6%9F%AF%E5%8D%97url = 'https://www.baidu.com/s?' name = input("請輸入要搜索的內容:") # 定義一個字典,與urllib.parse.urlencode的傳參形式一致 wd = {'wd': name} # 將漢字轉成形如%E6%9F%AF%E5%8D%97 wd = urllib.parse.urlencode(wd) # 拼接完整url url = url + wd headers = headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'} # 創建請求對象 req = urllib.request.Request(url, headers=headers) # 發送請求并獲取響應 res = urllib.request.urlopen(req) # 獲取網頁內容 html = res.read().decode('utf-8') # 打印內容 print(html)
  • urllib.parse.quote(參數:字符串) -> 將字符串轉換成形如%E6%9F%AF%E5%8D%97
    • 代碼示例import urllib.parse# https://www.baidu.com/s?wd=%E6%9F%AF%E5%8D%97url = 'https://www.baidu.com/s?' name = input('請輸入你要搜索的內容:') name = urllib.parse.quote(name) # 拼接完整url url = url + name headers = headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'} # 創建請求對象 req = urllib.request.Request(url, headers=headers) # 發送請求并獲取響應 res = urllib.request.urlopen(req) # 獲取網頁內容 html = res.read().decode('utf-8') # 打印內容 print(html)

請求方式

  • GET 特點 :查詢參數在URL地址中顯示

  • POST

    • 在Request方法中添加data參數urllib.request.Request(url,data=data,headers=headers)
    • data :表單數據以bytes類型提交,不能是str

總結

以上是生活随笔為你收集整理的python urllib模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。