Python之Scrapy爬蟲框架 入門實例(一)


一、開發環境

  1.安裝 scrapy

  2.安裝 python2.7

  3.安裝編輯器 PyCharm

二、創建scrapy項目pachong

  1.在命令行輸入命令:scrapy startproject  pachong 

   (pachong 為項目的名稱,可以改變)

     

  2.打開編輯器PyCharm,將剛剛創建的項目pachong導入。

    (點擊file—>選擇open—>輸入或選擇E:\pachong—>點擊ok)

     

三、創建scrapy爬蟲文件pachong_spider.py

  在pachong_spider.py這個文件夾中編寫爬取網站數據的內容。

  (右擊文件spiders—>選擇New,在選擇PhthonFile—>輸入文件名pachong_spider)

  

四、編寫爬蟲pachong

  將 網址  http://lab.scrapyd.cn/   博客中的所有博客標題和博客標簽,以作者名-語錄為名分別保存在各自作者對應的txt文件中。

  1.查看http://lab.scrapyd.cn/源代碼,獲取自己所需的博客標題、作者、標簽三個內容的對應HTML標簽信息。

  

  2.獲取網址的內容,保存到變量pachong里。

  (分析HTML結構,每一段需要提取的內容都被一個 <div class="quote post">……</div> 包裹。)

  

  3.獲取循環獲取標題、作者的第一個內容,和對應標簽的內容,並對標簽的內容進行逗號分隔后,進行分類保存。

  

  4.查看下一頁的HTML標簽,對下一頁獲取的內容進行循環。

     (查看存在不存在下一頁的鏈接,如果存在下一頁,把下一頁的內容提交給parse然后繼續爬取。如果不存在下一頁鏈接結束爬取。)

       

     

   5.爬蟲源代碼。 

 1 # -*- coding: utf-8 -*-
 2 import sys
 3 reload(sys)
 4 sys.setdefaultencoding('utf-8')
 5 #Python 默認腳本文件都是 UTF-8 編碼的,當腳本出現中文漢字時需要對其進行解碼。
 6 import scrapy
 7 class itemSpider(scrapy.Spider):
 8     # scrapy.Spider 是一個簡單的爬蟲類型。
 9     # 它只是提供了一個默認start_requests()實現。
10     # 它從start_urlsspider屬性發送請求,並parse 為每個結果響應調用spider的方法。
11     name ="pachong"
12     # 定義此爬蟲名稱的字符串。
13     # 它必須是唯一的。
14     start_urls = ['http://lab.scrapyd.cn']
15     #爬蟲抓取自己需要的網址列表。
16     #該網站列表可以是多個。
17     def parse(self, response):
18         # 定義一個parse規則,用來爬取自己需要的網站信息。
19         pachong = response.css('div.quote')
20         # 用變量pachong來保存獲取網站的部分內容。
21         for v in pachong:
22             text = v.css('.text::text').extract_first()
23             autor = v.css('.author::text').extract_first()
24             tags = v.css('.tags .tag::text').extract()
25             tags = ','.join(tags)
26             # 循環提取所有的標題、作者和標簽內容。
27             fileName = u'%s-語錄.txt' % autor
28             # 文件的名稱為作者名字—語錄.txt。
29             with open(fileName, "a+")as f:
30                 f.write(u'標題:'+text)
31                 f.write('\n')
32                 f.write(u'標簽:' + tags)
33                 f.write('\n------------------------------------------------\n')
34                 # 打開文件並寫入標題和標簽內容。
35                 f.close()
36                 # 關閉文件
37             next_page = response.css('li.next a::attr(href)').extract_first()
38             if next_page is not None:
39                 next_page = response.urljoin(next_page)
40                 yield scrapy.Request(next_page, callback=self.parse)
41                 # 查看存在不存在下一頁的鏈接,如果存在下一頁,把下一頁的內容提交給parse然后繼續爬取。
42                 # 如果不存在下一頁鏈接結束爬取。

 

五、運行爬蟲pachong

  1.在命令行輸入命令:scrapy crawl  pachong

  (在pachong的目錄下輸入命令)

  

  

  2.打開e盤 pachong文件夾,已經按要求爬取網址  http://lab.scrapyd.cn/ 的內容。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM