1. 程式人生 > >python:爬蟲0

python:爬蟲0

電驢 cati body nbsp 爬蟲 esp 域名 對象 通過

什麽是網頁爬蟲,也叫網頁蜘蛛。把互聯網比作一個蜘蛛網,有好多節點,這個蜘蛛在網上爬來爬去,對對網頁中的每個關鍵字進行建立索引,然後建立索引數據庫,經過復雜的排序算法後,這些算法的結果將按照相關度的高低展現出來。

一、要想寫爬蟲,首先就要解決第一個問題,編程語言怎麽訪問互聯網(python)?

python自帶模塊urllib(url+lib)(額力博)

url的一般格式為(帶方括號[]的為可選項):

protocol://hostname[:port]/path/[;parameters][?query]#fragment

  • 第一部分:協議:http、https、ftp、file、ed2k(電驢)、......
  • 第二部分:存放資源的服務器的域名系統或IP地址(有時候要包含端口號,各種傳輸協議都有默認的端口號,如http的默認端口為80)
  • 第三部分:資源的具體地址,如目錄或文件名等

Python2中有urllib和urllib2兩個模塊;python3對這個做了個打包,都叫urllib。通過幫助 文檔可以考到,其實這並不是模塊,而是一個包;下邊有四個模塊:

  • urllib.request(主要講這個,也是最復雜的,它包含對服務器的請求、跳轉、代理、安全等等)
  • urllib.error
  • urllib.parse
  • urllib.robotparser

查看urllib.request文檔,有好多東西,不能這麽看,然後百度谷歌查url.request怎麽用(學習)

>>> import urllib.request
>>> response = urllib.request.urlopen("http://www.fishc.com")  #這個打開的過程實際上是把網頁從 服務器上獲取的過程
>>> html = response.read()                       #把這個對象(類文件對象)讀取出來
>>> print(html)                             #print(html) 是個b二進制的文件,和我們可視的代碼(審視元素)不一樣
b
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r\n\t"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r\n\r\n<!-- \r\n(c) 2011 \xc4\xbdubom\xc3\xadr Krupa, CC BY-ND 3.0\r\n -->\t\r\n\r\n<html xmlns="http://www.w3.org/1999/xhtml">\r\n\t<head>\r\n\t\t<meta http-equiv="content-type" content="text/html; charset=utf-8" />\xe9\xb1\xbcC\xe5\xb7\xa5\xe4\xbd\x9c\xe5\xae\xa4-\xe5\x85\x8d\xe8\xb4\xb9\xe7\xbc\x96\xe7\xa8\x8b\xe8\xa7\x86\xe9\xa2\x91\xe6\x95\x99\xe5\xad\xa6|\xe7\xbc\x96\xe7\xa8\x8b\xe6\x8a\x80\xe6\x9c\xaf\x......... == document.location.protocol) ? " https://" : " http://");\r\ndocument.write(unescape("%3Cscript src=\‘" + _bdhmProtocol + "hm.baidu.com/h.js%3F49739b392c8b45caf83863be633c629f\‘ type=\‘text/javascript\‘%3E%3C/script%3E"));\r\n \t\t\t</script>\r\n\t\t</div>\r\n\t</body>\r\n</html>\r\n >>> html = html.decode("utf-8")                    #在進行一個解碼,需要知道原網頁編碼方式 >>> print(html) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- (c) 2011 ?ubomír Kru...............F49739b392c8b45caf83863be633c629f type=text/javascript%3E%3C/script%3E")); </script> </div> </body> </html>

python:爬蟲0