新手學習python-從零開始學習

1.學習pythonpython

  • urllib2 經常使用方法

urlopen(url, data, timeout)json

urllib2.Request()瀏覽器

urllib.urlencode()服務器

params = {} get : url + "?" + paramscookie

  • http:請求分析
  • User-Agent : 有些服務器或 Proxy 會經過該值來判斷是不是瀏覽器發出的請求
  • Content-Type : 在使用 REST 接口時,服務器會檢查該值,用來肯定 HTTP Body 中的內容該怎樣解析。
  • application/xml : 在 XML RPC,如 RESTful/SOAP 調用時使用
  • application/json : 在 JSON RPC 調用時使用
  • application/x-www-form-urlencoded : 瀏覽器提交 Web 表單時使用 在使用服務器提供的 RESTful 或 SOAP 服務時, Content-Type 設置錯誤會致使服務器拒絕服務
import urllib  
import urllib2  

url = 'http://www.server.com/login'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  
values = {'username' : 'cqc',  'password' : 'XXXX' }  
headers = { 'User-Agent' : user_agent }  
data = urllib.urlencode(values)  
request = urllib2.Request(url, data, headers)  
response = urllib2.urlopen(request)  
page = response.read()
  • 對付」反盜鏈」的方式,對付防盜鏈,服務器會識別headers中的referer是否是它本身,若是不是,有的服務器不會響應,因此咱們還能夠在headers中加入refererapp

  • 代理服務器設置學習

import urllib2
enable_proxy = True
proxy_handler = urllib2.ProxyHandler({"http" : 'http://some-proxy.com:8080'})
null_proxy_handler = urllib2.ProxyHandler({})
if enable_proxy:
    opener = urllib2.build_opener(proxy_handler)
else:
    opener = urllib2.build_opener(null_proxy_handler)
urllib2.install_opener(opener)
  • 使用DebugLog
import urllib2
httpHandler = urllib2.HTTPHandler(debuglevel=1)
httpsHandler = urllib2.HTTPSHandler(debuglevel=1)
opener = urllib2.build_opener(httpHandler, httpsHandler)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://www.baidu.com')
  • cookie Cookielib
import urllib2
import cookielib
#聲明一個CookieJar對象實例來保存cookie
cookie = cookielib.CookieJar()
#利用urllib2庫的HTTPCookieProcessor對象來建立cookie處理器
handler=urllib2.HTTPCookieProcessor(cookie)
#經過handler來構建opener
opener = urllib2.build_opener(handler)
#此處的open方法同urllib2的urlopen方法,也能夠傳入request
response = opener.open('http://www.baidu.com')
for item in cookie:
    print 'Name = '+item.name
    print 'Value = '+item.value
  • 保存cookie到文件
import cookielib
import urllib2

#設置保存cookie的文件,同級目錄下的cookie.txt
filename = 'cookie.txt'
#聲明一個MozillaCookieJar對象實例來保存cookie,以後寫入文件
cookie = cookielib.MozillaCookieJar(filename)
#利用urllib2庫的HTTPCookieProcessor對象來建立cookie處理器
handler = urllib2.HTTPCookieProcessor(cookie)
#經過handler來構建opener
opener = urllib2.build_opener(handler)
#建立一個請求,原理同urllib2的urlopen
response = opener.open("http://www.baidu.com")
#保存cookie到文件
cookie.save(ignore_discard=True, ignore_expires=True)
  • 從文件中獲取Cookie並訪問
import cookielib
import urllib2
 
#建立MozillaCookieJar實例對象
cookie = cookielib.MozillaCookieJar()
#從文件中讀取cookie內容到變量
cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)
#建立請求的request
req = urllib2.Request("http://www.baidu.com")
#利用urllib2的build_opener方法建立一個opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
response = opener.open(req)
print response.read()
  • BeautifulSoup 類型
  • Tag
  • NavigableString
  • BeautifulSoup -Comment
  • 遍歷文檔樹ui

    1. tag 的 .content 屬性能夠將tag的子節點以列表的方式輸出
    2. .children
    3. .descendants 屬性能夠對全部tag的子孫節點進行遞歸循環
    4. .strings 獲取多個內容
    5. .stripped_strings 能夠去除多餘空白內容
    6. .parent 父節點
    7. . parents 全部的父節點
    8. .next_sibling .previous_sibling 兄弟節點
    9. .next_siblings .previous_siblings 全部的兄弟節點 10 .next_element .previous_element 先後節點
    10. .next_elements .previous_elements 全部的先後節點
  • 搜索文檔樹url

    1. find_all( name , attrs , recursive , text , **kwargs )
    2. 用法相似
    3. http://python.jobbole.com/81349/
相關文章
相關標籤/搜索