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

1.學習python

urllib2 常用方法

urlopen(url, data, timeout)

urllib2.Request()

urllib.urlencode()

params = {}

get : url + "?" + params

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中加入referer

代理服務器設置

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

遍歷文檔樹

tag 的 .content 屬性可以將tag的子節點以列表的方式輸出

.children

.descendants 屬性可以對所有tag的子孫節點進行遞歸循環

.strings 獲取多個內容

.stripped_strings 可以去除多余空白內容

.parent 父節點

. parents 所有的父節點

.next_sibling .previous_sibling 兄弟節點

.next_siblings .previous_siblings 所有的兄弟節點

10 .next_element .previous_element 前后節點

.next_elements .previous_elements 所有的前后節點

搜索文檔樹

find_all( name , attrs , recursive , text , **kwargs )

用法類似

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258419.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258419.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258419.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【數據結構】圖的深度優先搜索

圖的深度優先搜索類似于樹的深度優先搜索。不同的是,圖中可能包括循環,即我們有可能重復訪問節點。為了避免訪問已經訪問過的節點,我們要使用一個布爾變量的數組。 例如,在下圖中,我們從節點2開始訪問。當訪問到節點0&…

flex中dispatchEvent的用法(自定義事件) .

Evevt和EventDispatcher類在as3的事件機制中是很重要的角色,dispatchEvent()是EventDispatcher類的一個事件發送方法,它可以發送出Event類或其子類的實例,在as3中所有的顯示對象都可以發送事件,因為as3中所有的顯示對象都是EventD…

菜鳥超級進口大倉618首度亮相!跨境商品也能當日次日達

6月12日下午3點40分,來自南京的一名用戶收到了由寧波保稅倉發出、圓通速遞配送的雀巢咖啡,這距離他在天貓國際上下單僅過去4小時。 天貓618在昨日迎來進口日,進口銷量火爆上升。作為國內最為先進的跨境進口倉,菜鳥超級大倉在本次大…

頻域/s域/z域三大變換的發展史及其聯系

本文主要介紹三大變換(傅里葉變換、拉普拉斯變換及Z變換)的發展史及其之間的聯系。

Tomcat8.0.21登錄時忘記用戶名和密碼

大概是這學期開學沒多久吧,4月份的時候,為了學習javaEE,裝了Tomcat。過了這么久早就忘記用戶名和密碼了,所以無法進入Tomcat的管理界面。百度(其實我也很想用google)了一堆,幾乎都是修改用戶配置…

二元隱函數求二階偏導_在線計算專題(03):具體、抽象函數的導數、微分與方向導數的計算...

導數與微分是微積分內容的基礎,就計算來說一元函數與多元函數的導數的計算思想一致. 不管是一元函數還是多元函數,導數、偏導數的計算都是將函數視為求導變量的一元函數求導數。微分在描述形式略有區別,但是其計算方法還是一樣,只…

android更換工具鏈

歡迎轉載opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e73 android編譯系統是跟隨android源碼一起發布的,使用了gcc編譯器,也就是所謂的交叉編譯環境。android-4.2里用的編譯器是gcc4.6,本篇升級gcc4.6到gcc4.6,修…

頻域/s域/z域三大變換的性質對比

本文主要介紹三大變換(傅里葉變換、拉普拉斯變換及Z變換)的性質對比及其常用信號變換。

Java系列(1) JavaEE架構

JavaEE是開發分布式應用的工業標準,Weblogic,BES,Tomcat等是比較常見的JavaEE服務器,嚴格來說Tomcat沒有實現全部的JavaEE規范,只能算是Servlet容器。我們從一幅Spec文檔上的架構圖,粗略了解JavaEE的基本結構。該結構圖表達了JavaEE各元素的邏…

協整檢驗r語言代碼_R語言時間序列分析實例

#加載數據xread.table(file.choose())#生成時間序列對象xtimeseries#畫時間序列圖plot.ts(xtimeseries)#增加線性擬合曲線abline(lm(xtimeseries~time(xtimeseries)))1、分解時間序列分解一個時間序列意味著把它拆分成構成元件,一般序列包含一個趨勢部分、一個不規則…

pat1043. Is It a Binary Search Tree (25)

1043. Is It a Binary Search Tree (25) 時間限制400 ms內存限制65536 kB代碼長度限制16000 B判題程序Standard作者CHEN, YueA Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains o…

微軟待辦應用更新

微軟做了一些更改和優化來改進微軟待辦。 為了在所有設備上獲得最佳體驗,需確保移動和桌面微軟待辦2021 年 12 月 31日之前的版本為 2.49 或更高版本,否則微軟待辦不再支持跨設備同步,但仍然能脫機使用。 桌面版的微軟待辦應用下載地址為&…

出租WiFi到底靠不靠譜?

創業是一種心態,也是不斷的探索,他融入我們的生活,從日常中積累,從小微處啟航。 一、背景交代 最近在換工作,本周搬到新租的單身公寓,空間不大,倒是干凈整潔。委托租房中介幫忙開通寬帶&#xf…

AD20學習筆記1---元件庫的創建

前言: 本文學習視頻是B站點擊率第一的凡億教育《Altium Designer 20 19(入門到精通全38集)四層板智能車PCB設計視頻教程》,視頻地址:Altium Designer 20 19(入門到精通全38集)四層板智能車PCB設…

nodejs環境搭建與express安裝配置

一、NPM 1、下載nodeJS 下載地址:https://nodejs.org/en/download/ 因為我的系統是Linux 的,所以下載已經編譯好的Linux,nodejs tar包 3、下載完成過后放到/usr/local/下面 4、解壓:因為這個包不是gz的包所以解壓 正確&#xff1a…

在vue中實現picker樣式_基于Vue實現timepicker

主要用到的還是Vue的基本知識而已,不過要想到的細節很多。先放效果,點擊上框,顯示timepicker。而且可以根據點擊的是時還是分來改變圓盤的數字。這里我用了兩個組件,和,這里的時和分的數值我掛在了根實例中&#xff0c…

玩玩

金字塔一樣輸出字母&#xff0c;如 輸入 d a a b a a b c b a a b c d c b a 代碼實現 #include<stdio.h> int main(void) { char z; int j,t,k; scanf("%c",&z); t0; if(z>a&&z<z) { for(int i0;i<z-a;i) { for(kz-a-t;k…

總結界面框架_UI_Adapter

本人定期更新經典案例及解決方案如有疑問請聯系我QQ1822282728 -- 277627117 下面是常用到的ui Demo安卓三級篩選菜單listview&#xff08;非常經典&#xff09; http://download.csdn.net/detail/zillvip/9138975android地圖應用&#xff08;路徑規劃&#xff0c;地理編碼&…

AD20學習筆記2---原理圖繪制及編譯檢查

前言&#xff1a; 本文學習視頻是B站點擊率第一的凡億教育《Altium Designer 20 19&#xff08;入門到精通全38集&#xff09;四層板智能車PCB設計視頻教程》&#xff0c;視頻地址&#xff1a;Altium Designer 20 19&#xff08;入門到精通全38集&#xff09;四層板智能車PCB設…

git如何設置master分支的權限_Git 從master 分支拉新分支開發

一、 切換到被copy的分支(master)&#xff0c;并且從遠端拉取最新版本$git checkout master$git pull二、從當前分支拉copy開發分支$git checkout -b devSwitched to a new branch dev三、 把新建的分支push到遠端$git push origin dev四、拉取遠端分支$git pullThere is no tr…