閱讀683 返回首頁    go gooseeker集搜客


在Python3.5下安裝和測試Scrapy爬網站

1. 引言

Scrapy框架結構清晰,基於twisted的異步架構可以充分利用計算機資源,是爬蟲做大的必備基礎。本文將講解如何快速安裝此框架並使用起來。

2. 安裝Twisted

2.1 同安裝Lxml庫

(參考《為編寫網絡爬蟲程序安裝Python3.5》3.1節)一樣,通過下載對應版本的.whl文件先安裝twisted庫,下載地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

2.2 安裝twisted

打開命令提示符窗口,輸入命令:

  1. pip install E:\demo\Twisted-16.4.1-cp35-cp35m-win_amd64.whl(下載好的twisted模塊的whl文件路徑)

3. 安裝scrapy

twisted庫安裝成功後,安裝scrapy就簡單了,在命令提示符窗口直接輸入命令: pip install scrapy 回車

安裝關聯模塊pypiwin32,在命令提示符窗口直接輸入命令: pip install pypiwin32 回車

4. Scrapy測試,敲一個基於Scrapy框架的爬蟲程序

新建一個Scrapy爬蟲項目fourth(因為這是繼Python3.5安裝的第四篇教程,有興趣的話請從頭看起):在任意目錄按住shift+右鍵->選擇在此處打開命令提示符窗口(這裏默認為E:\demo),然後輸入命令:

  1. E:\demo>scrapy startproject fourth

該命令將會創建包含下列內容的fourth目錄:

  1. fourth/
  2.     scrapy.cfg
  3.     fourth/
  4.         __init__.py
  5.         items.py
  6.         pipelines.py
  7.         settings.py
  8.         spiders/
  9.             __init__.py
  10.             ...



修改項目配置文件settings.py,有些網站會在根目錄下放置一個名字為robots.txt的文件,裏麵聲明了此網站希望爬蟲遵守的規範,Scrapy默認遵守這個文件製定的規範,即ROBOTSTXT_OBEY默認值為True。在這裏需要修改ROBOTSTXT_OBEY的值,找到項目目錄(這裏為:E:\demo\fourth\fourth)下文件settings.py,更改ROBOTSTXT_OBEY的值為False

引入Gooseeker最新規則提取器模塊gooseeker.py(下載地址: https://github.com/FullerHua/gooseeker/tree/master/core),拷貝到項目目錄下,這裏為E:\demo\fourth\gooseeker.py

創建爬蟲模塊,進入項目目錄E:\demo\fourth下,在此處打開命提示符窗口輸入命令:

  1. E:\demo\fourth>scrapy genspider anjuke 'anjuke.com'

該命令將會在項目目錄E:\demo\fourth\fourth\spiders下創建模塊文件anjuke.py,以記事本打開然後添加代碼,主要代碼:

  1. # -*- coding: utf-8 -*-
  2. # Scrapy spider 模塊
  3. # 采集安居客房源信息
  4. # 采集結果保存在anjuke-result.xml中
  5. import os
  6. import time
  7. import scrapy
  8. from gooseeker import GsExtractor

  9. class AnjukeSpider(scrapy.Spider):
  10.     name = "anjuke"
  11.     allowed_domains = ["'anjuke.com'"]
  12.     start_urls = (
  13.         'https://bj.zu.anjuke.com/fangyuan/p1',
  14.     )

  15.     def parse(self, response):
  16.         print("----------------------------------------------------------------------------")
  17.         # 引用提取器
  18.         bbsExtra = GsExtractor()
  19.         # 設置xslt抓取規則
  20.         bbsExtra.setXsltFromAPI("31d24931e043e2d5364d03b8ff9cc77e", "安居客_房源")
  21.         # 調用extract方法提取所需內容
  22.         result = bbsExtra.extractHTML(response.body)
  23.         
  24.         # 打印采集結果
  25.         print(str(result).encode('gbk','ignore').decode('gbk'))
  26.         # 保存采集結果
  27.         file_path = os.getcwd() + "/anjuke-result.xml"
  28.         open(file_path,"wb").write(result)
  29.         # 打印結果存放路徑
  30.         print("采集結果文件:" + file_path)

啟動爬蟲,進入項目目錄E:\demo\fourth下,在此處打開命提示符窗口輸入命令:

  1. E:\demo\fourth>scrapy crawl anjuke

查看保存結果文件,進入Scrapy爬蟲項目目錄,這裏為E:\demo\fourth,找到名稱為anjuke-result.xml的文件夾然後打開

5. 總結

安裝pypiwin32時碰到了一次超時斷開,再次輸入命令重新安裝才成功,若重複安裝都失敗可以嚐試連接vpn再安裝。下一篇《Python爬蟲實戰:單頁采集》將講解如何爬取微博數據(單頁),同時整合Python爬蟲程序以Gooseeker規則提取器為接口製作一個通用的采集器,歡迎有興趣的小夥伴一起交流進步。

6. 集搜客GooSeeker開源代碼下載源

GooSeeker開源Python網絡爬蟲GitHub源

若有疑問可以或集搜客網絡爬蟲

最後更新:2017-01-09 14:08:11

  上一篇:go 【第28期】淘寶天貓評論采集
  下一篇:go 集搜客網絡爬蟲軟件Mac osx版安裝方法