瞭解python的基本語法後就能夠開始了,邊學邊鞏固。php
學爬蟲那什麼是網絡爬蟲,如下是百度百科的定義:網絡爬蟲(又被稱爲網頁蜘蛛,網絡機器人,css
在FOAF社區中間,更常常的稱爲網頁追逐者),是一種按照必定的規則,自動地抓取萬維網信息的程序或者腳本。html
另一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。python
找資源的源頭應該是URL,這是我我的的理解:數據庫
URL的格式由三部分組成:
①第一部分是協議(或稱爲服務方式)。
②第二部分是存有該資源的主機IP地址(有時也包括端口號)。
③第三部分是主機資源的具體地址,如目錄和文件名等。瀏覽器
執行的版本是python2.7, 開發工具是JetBrains PyCharm 5.0緩存
==========================================================
import urllib2
response = urllib2.urlopen("http://www.baidu.com")
print response.read()
==========================================================
輸出是一大堆html,css,js代碼,後面要研究的是也是這些材料,具體說是解析器要作的。
HTTP是基於請求和應答機制的--客戶端提出請求,服務端提供應答。安全
urllib2用一個Request對象來映射你提出的HTTP請求,在它最簡單的使用形式中你將用你要請求的服務器
地址建立一個Request對象,經過調用urlopen並傳入Request對象,將返回一個相關請求response對象,網絡
這個應答對象如同一個文件對象,因此你能夠在Response中調用.read()。
==========================================================
import urllib2
req = urllib2.Request("http://www.baidu.com")
response = urllib2.urlopen(req)
print response.read()
==========================================================
以上代碼更能體現http的過程。
在urlopen中除了"http:",URL一樣可使用"ftp:","file:"等等來替代
1.GET請求的數據會附在URL以後(就是把數據放置在HTTP協議頭中),以?分割URL和傳輸數據,
參數之間以&相連,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。
若是數據是英文字母/數字,原樣發送,若是是空格,轉換爲+,若是是中文/其餘字符,則直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX爲該符號以16進製表示的ASCII。POST把提交的數據則放置在是HTTP包的包體中。
2."GET方式提交的數據最多隻能是1024字節,理論上POST沒有限制,可傳較大量的數據,這個限制是特定的瀏覽器及服務器對它的限制。
3.POST的安全性要比GET的安全性高。注意:這裏所說的安全性和上面GET提到的「安全」不是同個概念。上面「安全」的含義僅僅是不做數據修改,而這裏安全的含義是真正的Security的含義,好比:經過GET提交數據,用戶名和密碼將明文出如今URL上,由於(1)登陸頁面有可能被瀏覽器緩存,(2)其餘人查看瀏覽器的歷史紀錄,那麼別人就能夠拿到你的帳號和密碼了,除此以外,使用GET提交數據還可能會形成Cross-site request forgery攻擊。