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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

urllib2使用总结

發布時間:2025/6/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 urllib2使用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

keywords:

  • urllib2,BeautifulSoup,cookielib
  • ?

    題外話:
    小弟是編程愛好者,各位看官輕拍。
    最近在使用urllib2抓取網頁內容,在學習的過程中也查閱了不少資料,并從中收獲很多。在查閱資料的過程中,我發現大部分資料都是建立在對urllib2的熟悉基礎之上,程序的細節并未顧及到新手看到這份資料會產生怎樣的困惑。在接下來的內容中,我會寫到我碰到的疑問以及解決方法。如果你也碰到類似的困惑,希望給予你幫助。
    一.urllib2簡介
    urllib2提供一個基礎函數urlopen,通過向指定的URL發出請求來獲取數據。最簡單的形式就是

  • import urllib2
  • response=urllib2.urlopen('http://www.douban.com')
  • html=response.read()
  • 這個過程就是我們平時刷網頁的代碼表現形式,它基于請求-響應模型。

  • response=urllib2.urlopen('http://www.douban.com')
  • 實際上可以看作兩個步驟:
    我們指定一個域名并發送請求
    1.

  • request=urllib2.request('http://www.douban.com')
  • 接著服務端響應來自客戶端的請求
    2.

  • response=urllib2.urlopen(request)
  • 也許你會注意到,我們平時除了刷網頁的操作,還有向網頁提交數據。這種提交數據的行為,urllib2會把它翻譯為:

  • import urllib
  • import urllib2
  • url = 'http://www.douban.com'
  • info = {'name' : 'Michael Foord',
  • ????????? 'location' : 'Northampton'}
  • data = urllib.urlencode(info)? #info 需要被編碼為urllib2能理解的格式,這里用到的是urllib
  • req = urllib2.Request(url, data)
  • response = urllib2.urlopen(req)
  • the_page = response.read()
  • 有時你會碰到,程序也對,但是服務器拒絕你的訪問。這是為什么呢?問題出在請求中的頭信息(header)。
    有的服務端有潔癖,不喜歡程序來觸摸它。這個時候你需要將你的程序偽裝成瀏覽器來發出請求。請求的方式就包含在header中。
    常見的情形:

  • import urllib
  • import urllib2
  • url = 'http://www.someserver.com/cgi-bin/register.cgi'
  • user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'# 將user_agent寫入頭信息
  • values = {'name' : 'Michael Foord',
  • ????????? 'location' : 'Northampton',
  • ????????? 'language' : 'Python' }
  • headers = { 'User-Agent' : user_agent }
  • data = urllib.urlencode(values)
  • req = urllib2.Request(url, data, headers)
  • response = urllib2.urlopen(req)
  • the_page = response.read()
  • 二.示例
    模擬一個利用cookie登錄人人網的過程

    2012-03-07 21:34 上傳

    下載附件 (33.07 KB)

    說明:
    1.人人網的登錄地址需要用BeautifulSoup來抓取。
    2.個人信息存在info中。info是一個字典{'email':'xx','password':'xx'}.key的命名需要根據實際網頁中定義,比如豆瓣的定義是{'form_email':'xx','form_password':'xx'}
    3.使用cookie的好處在于,登錄之后你可以使用cookie中保存的信息作為頭信息的一部分,利用已經保存的頭信息接著訪問網站。

    ?

    參考:
    HOWTO Fetch Internet Resources Using urllib2
    Beautiful Soup 中文文檔
    How to use Python to login to a webpage and retrieve cookies for later usage?

    總結

    以上是生活随笔為你收集整理的urllib2使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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