pythoncookielib
1. python標准庫中常用的網路相關模塊有哪些
1、asynchat、asyncore
asynchat是asyncore的增強版。asyncore則是非同步套接字處理程序。
2、Cookie、cookielib
Cookie對象操作,主要用於伺服器。cookielib客戶端的cookie的支持。
3、email
E-mail郵件消息的支持。包括MIME
4、imaplib
IMAP4客戶端模塊
5、mailbox
讀取多種郵箱的格式
6、mailcap
通過mailcap文件訪問MIME配置
7、mhlib
訪問MH郵箱
8、poplib
POP客戶端模塊
9、robotparser
支持解析Web伺服器的robot文件
10、SimpleXMLRPCServer
一個簡單的XML-RPC伺服器
11、smtpd、smtplib
SMTP伺服器端模塊、SMTP客戶端模塊
python標准庫中常用的網路相關模塊並不止以上這些。還有很多,但並不一定都需要了解,只需在需要使用的時候查找參考使用即可。
2. 如何評價利用python製作數據採集,計算,可視化界面呢
先來設置兩個url地址,第一個用於第一次訪問,這樣可以獲得網站伺服器發來的cookie,第二個網址是用於登陸的地址
引入兩個模塊,cookielib和urllib2
接著,我們安裝一個cookie處理器,代碼如下,這個代碼很多人不太能讀懂,其實你會用就可以了,他們就是這個固定的形式,頂多改改變數的名字。你復制下來以後自己用就可以了,用多了,你再去看代碼的意義,你就都懂了。
然後我們先訪問一下網站,獲得一個cookie,你不用管這個cookie該怎麼弄,前面設置的cookie處理器會自動處理。
接著,我們寫一下postdata,也就是你要post的數據,因為我們打算登陸網站,所以postdata里肯定有用戶名和密碼,那麼怎麼知道該怎麼寫postdata呢?看你抓包得到的post數據。下面第一幅圖是httpwatch抓包截圖,點擊postdata,看到post的數據,然後我們看第二幅圖,就是python的寫法。你自己感受一下。
寫完postdata以後,我們 要將postdata轉碼一下,讓伺服器可以解讀postdata數據
接著設置headers信息,headers也是抓包得到的。同樣的方式,你去寫header內的信息
然後我們通過request方法來登陸網站,並返回數據,返回的數據存儲在request中
通過rulopen方法和read方法來讀取數據,並列印出來。
我們看到輸出的結果,這說明我們雖然正確的模擬了登陸網站需要的post信息,但是沒有考慮到登陸網站是需要驗證碼的,後期我們會看到如何處理驗證碼,如果你拿這個教程去處理沒有驗證碼的登陸問題,那麼你現在已經成功了。
3. python cookielib模塊有什麼用
抓去網頁的時候,用cookielib模塊 獲得cookie值
你的採納是我前進的動力,
記得好評和採納,答題不易,互相幫助,
手機提問的朋友在客戶端右上角評價點(滿意)即可.
如果你認可我的回答,請及時點擊(採納為滿意回答)按鈕!!
4. 如何利用Python爬蟲從網頁上批量獲取想要的信息
稍微說一下背景,當時我想研究蛋白質與小分子的復合物在空間三維結構上的一些規律,首先得有數據啊,數據從哪裡來?就是從一個涵蓋所有已經解析三維結構的蛋白質-小分子復合物的資料庫裡面下載。這時候,手動一個個去下顯然是不可取的,我們需要寫個腳本,能從特定的網站選擇性得批量下載需要的信息。python是不錯的選擇。
import urllib #python中用於獲取網站的模塊
import urllib2, cookielib
有些網站訪問時需要cookie的,python處理cookie代碼如下:
cj = cookielib.CookieJar ( )
opener = urllib2.build_opener( urllib2.HttpCookieProcessor(cj) )
urllib2.install_opener (opener)
通常我們需要在網站中搜索得到我們需要的信息,這里分為二種情況:
1. 第一種,直接改變網址就可以得到你想要搜索的頁面:
def GetWebPage( x ): #我們定義一個獲取頁面的函數,x 是用於呈遞你在頁面中搜索的內容的參數
url = 'http://xxxxx/xxx.cgi?&' + 『你想要搜索的參數』 # 結合自己頁面情況適當修改
page = urllib2.urlopen(url)
pageContent = page.read( )
return pageContent #返回的是HTML格式的頁面信息
2.第二種,你需要用到post方法,將你搜索的內容放在postdata裡面,然後返回你需要的頁面
def GetWebPage( x ): #我們定義一個獲取頁面的函數,x 是用於呈遞你在頁面中搜索的內容的參數
url = 'http://xxxxx/xxx' #這個網址是你進入搜索界面的網址
postData = urllib.urlencode( { 各種『post』參數輸入 } ) #這裡面的post參數輸入需要自己去查
req= urllib2.Request (url, postData)
pageContent = urllib2.urlopen (req). read( )
return pageContent #返回的是HTML格式的頁面信息
在獲取了我們需要的網頁信息之後,我們需要從獲得的網頁中進一步獲取我們需要的信息,這里我推薦使用 BeautifulSoup 這個模塊, python自帶的沒有,可以自行網路谷歌下載安裝。 BeautifulSoup 翻譯就是『美味的湯』,你需要做的是從一鍋湯裡面找到你喜歡吃的東西。
import re # 正則表達式,用於匹配字元
from bs4 import BeautifulSoup # 導入BeautifulSoup 模塊
soup = BeautifulSoup(pageContent) #pageContent就是上面我們搜索得到的頁面
soup就是 HTML 中所有的標簽(tag)BeautifulSoup處理格式化後的字元串,一個標準的tag形式為:
hwkobe24
通過一些過濾方法,我們可以從soup中獲取我們需要的信息:
(1) find_all ( name , attrs , recursive , text , **kwargs)
這裡面,我們通過添加對標簽的約束來獲取需要的標簽列表, 比如 soup.find_all ('p') 就是尋找名字為『p』的 標簽,而soup.find_all (class = "tittle") 就是找到所有class屬性為"tittle" 的標簽,以及soup.find_all ( class = re.compile('lass')) 表示 class屬性中包含『lass』的所有標簽,這里用到了正則表達式(可以自己學習一下,非常有用滴)
當我們獲取了所有想要標簽的列表之後,遍歷這個列表,再獲取標簽中你需要的內容,通常我們需要標簽中的文字部分,也就是網頁中顯示出來的文字,代碼如下:
tagList = soup.find_all (class="tittle") #如果標簽比較復雜,可以用多個過濾條件使過濾更加嚴格
for tag in tagList:
print tag.text
f.write ( str(tag.text) ) #將這些信息寫入本地文件中以後使用
(2)find( name , attrs , recursive , text , **kwargs )
它與 find_all( ) 方法唯一的區別是 find_all() 方法的返回結果是值包含一個元素的列表,而 find() 方法直接返回結果
(3)find_parents( ) find_parent( )
find_all() 和 find() 只搜索當前節點的所有子節點,孫子節點等. find_parents() 和 find_parent() 用來搜索當前節點的父輩節點,搜索方法與普通tag的搜索方法相同,搜索文檔搜索文檔包含的內容
(4)find_next_siblings() find_next_sibling()
這2個方法通過 .next_siblings 屬性對當 tag 的所有後面解析的兄弟 tag 節點進代, find_next_siblings() 方法返回所有符合條件的後面的兄弟節點,find_next_sibling() 只返回符合條件的後面的第一個tag節點
(5)find_previous_siblings() find_previous_sibling()
這2個方法通過 .previous_siblings 屬性對當前 tag 的前面解析的兄弟 tag 節點進行迭代, find_previous_siblings()方法返回所有符合條件的前面的兄弟節點, find_previous_sibling() 方法返回第一個符合條件的前面的兄弟節點
(6)find_all_next() find_next()
這2個方法通過 .next_elements 屬性對當前 tag 的之後的 tag 和字元串進行迭代, find_all_next() 方法返回所有符合條件的節點, find_next() 方法返回第一個符合條件的節點
(7)find_all_previous() 和 find_previous()
這2個方法通過 .previous_elements 屬性對當前節點前面的 tag 和字元串進行迭代, find_all_previous() 方法返回所有符合條件的節點, find_previous()方法返回第一個符合條件的節點
具體的使用方法還有很多,用到這里你應該可以解決大部分問題了,如果要更深入了解可以參考官方的使用說明哈!
5. python中的cookielib有什麼作用
登錄只有做一次,登錄後瀏覽頁面之類的,如果沒有cookie,就會提示你沒有登錄
6. 關於用python寫的登陸程序,怎麼獲取cookie值並返回出來
cookielib.CookieJar(),自動進行cookie管理:實例:
cj = cookielib.Cookiejar()
urlopen('...')
for index, cookie in enumerate(cj):
print '[',index, ']',cookie
7. python 如果往cookielib.CookieJar()裏手動添加欄位
defmake_cookie(name,value):
returncookielib.Cookie(
version=0,
name=name,
value=value,
port=None,
port_specified=False,
domain="xxxxx",
domain_specified=True,
domain_initial_dot=False,
path="/",
path_specified=True,
secure=False,
expires=None,
discard=False,
comment=None,
comment_url=None,
rest=None
)
jar=cookielib.CookieJar()
...
jar.set_cookie(make_cookie("name","value"))
...
8. 想用python寫個在某個論壇自動回帖頂帖的程序,需要用到什麼模塊
以python 2.7為例。
首先肯定會用到: urllib urllib2
cookielib。頂貼一般也就是回復一個帖子了,那麼要像伺服器發送一個特定的http請求,用python構造出這個請求再發就行了,具體構造成什
么樣,可以用firebug等工具看實際發帖過程中發到伺服器的請求。
還有可能用到:re htmllib BeautifulSoup json 等。用來解析獲取的web頁面,用正則表達式或者專用於html解析的包來分析頁面,在頁面里找東西(比如想要搶沙發的話,可能會找沒有回復的帖子)。
更
多可能用到的包:如PIL,PyQt 等。
PIL用於處理驗證碼圖片,比如二值化。一說到驗證碼,問題就復雜了,可能想要人工輸入驗證碼的話會用到GUI的包比如Qt,還有可能比較弱的驗證碼用
PIL做簡單的圖像處理就能識別了,如何處理比較復雜的驗證碼可以單獨開一個問題了,可能會涉及到人工智慧方面的東西。
9. 求教python缺少cookielib模塊怎麼辦
python缺少cookielib模塊怎麼辦
你要模擬網頁登錄,要發送請求,你首先要知道這個請求的規范。
比如:xxx.xxx.xxx/login?&user=xxx&pwd=xxxx
你說驗證碼,那麼到底是以參數的形式跟在請求的url中,還是以header的形式,這些你要先確定了才能說怎麼來模擬。
你可以先在網頁端做一下登錄過程,用google瀏覽其的F12(開發者工具),就可以看的很清楚:你的url請求中,包含哪些request header,url中包含了哪些參數parse