##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的結構相對簡單"http://iplist.net/<ip>/",因為我們能夠相對比較容易的從一個文件里面使用循環把所有的IP都讀取出來,下一步就是查看源代碼,看看你最想要的是那個部分的內容,在這個例子中我們可以看到HTML標簽header里面有一行```<h2>domain_name</h2>```.
那么我們就使用BeautifulSoup去分離這個頁面的源碼,下面是執行腳本的過程,我們這里只提取域名并且打印到STDOUT:

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

說到這里,這篇文章就已經就已經完成了,對于web請求你可以去分析python究竟是如何去請求的,并且如何去提取自己有用的信息并且打印到STDOUT.這里有一個解析iplist.net比較復雜的[腳本](https://github.com/primalsecn/python_code/blob/master/iplist.py),里面有非常完整的解析原理。大家可以看看