Python分布式爬蟲原理__Python

來源:互聯網
上載者:User

轉載請註明出處:http://blog.csdn.net/yiliumu/article/details/21335245

首先,我們先來看看,如果是人正常的行為,是如何擷取網頁內容的。 (1)開啟瀏覽器,輸入URL,開啟源網頁
(2)選取我們想要的內容,包括標題,作者,摘要,本文等資訊
(3)儲存到硬碟中

上面的三個過程,映射到技術層面上,其實就是:網路請求,抓取結構化資料,資料存放區。
我們使用Python寫一個簡單的程式,實現上面的簡單抓取功能。
[python]  view plain  copy   #!/usr/bin/python   #-*- coding: utf-8 -*-   '''''  Created on 2014-03-16    @author: Kris  '''   import urllib2, re, cookielib      def httpCrawler(url):       '''''      @summary: 網頁抓取      '''       content = httpRequest(url)       title = parseHtml(content)       saveData(title)      def httpRequest(url):       '''''      @summary: 網路請求      '''         try:           ret = None           SockFile = None           request = urllib2.Request(url)           request.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)')           request.add_header('Pragma', 'no-cache')           opener = urllib2.build_opener()           SockFile = opener.open(request)           ret = SockFile.read()       finally:           if SockFile:               SockFile.close()                  return ret      def parseHtml(html):       '''''      @summary: 抓取結構化資料      '''       content = None       pattern = '<title>([^<]*?)</title>'       temp = re.findall(pattern, html)       if temp:           content = temp[0]              return content          def saveData(data):       '''''      @summary: 資料存放區      '''       f = open('test', 'wb')  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.