標籤:

0x5:Web請求

##Web請求

這篇文章將會演示如何使用python進行web請求,這裡需要幾個python的模塊來使得我們能夠更容易創建和解析web請求與響應(httplib,Mechanize,Beautiful Soup和urllib/urllib2),安裝這些模塊並且檢查這些功能函數.

創建一個Web請求

下面有個簡短的例子,展示了使用python的SimpleHTTPServer創建一個本地web伺服器,並且建立一個請求:

解析HTML

現在我們已經使用Python建立了一個web請求,現在我們要找一個模塊來解析HTML文件。而前面我們提到了BeautifulSoup模塊能夠幫助我們基於HTML標籤解析HTML。下面有一個例子,可以幫助你理解如何去解析HTML文件:

BeautifulSoup對於幫助我們解析HTML非常強大,例如你可以使用BeautifulSoup內部的函數"find_all"去查找你想要解析的內容。例如:"iframes = parsed.find_all(『iframe』)".

實戰寫一個應用

大家都知道,我們可以使用大量的查詢去獲取更多的web資源,在這裡,Python腳本能夠自動幫你完成你的查詢並且獲取到你想要的資源.我常常使用iplist.net去反查域名,看看到底有多少個域名指向了一個IP.

當你開始寫腳本的時候,你首先得先考慮兩件事情:

1、請求URL的連接結構 2、你想要什麼信息?你可以通過HTML標籤定位到你想要的數據部分,當然為更加準確,你也可以使用正則式去匹配.

iplist.net的結構相對簡單"iplist.net//",因為我們能夠相對比較容易的從一個文件裡面使用循環把所有的IP都讀取出來,下一步就是查看源代碼,看看你最想要的是那個部分的內容,在這個例子中我們可以看到HTML標籤header裡面有一行<h2>domain_name</h2>.

那麼我們就使用BeautifulSoup去分離這個頁面的源碼,下面是執行腳本的過程,我們這裡只提取域名並且列印到STDOUT:

FireBug是一個分析源代碼的工具,很強加,下面你就可以看到高亮的代碼就是我們需要的信息;

說到這裡,這篇文章就已經就已經完成了,對於web請求你可以去分析python究竟是如何去請求的,並且如何去提取自己有用的信息並且列印到STDOUT.這裡有一個解析iplist.net比較複雜的腳本,裡面有非常完整的解析原理。大家可以看看


推薦閱讀:

Python入門到精通視頻課程(7)
使用pyenv管理多個Python版本依賴環境
Python 文本解析器
利用簡書首頁文章標題數據生成詞雲
0x1: 埠掃描

TAG:Python教程 |