683
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
打開命令提示符窗口,輸入命令:
- 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),然後輸入命令:
- E:\demo>scrapy startproject fourth
該命令將會創建包含下列內容的fourth目錄:
- fourth/
- scrapy.cfg
- fourth/
- __init__.py
- items.py
- pipelines.py
- settings.py
- spiders/
- __init__.py
- ...
修改項目配置文件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下,在此處打開命提示符窗口輸入命令:
- E:\demo\fourth>scrapy genspider anjuke 'anjuke.com'
該命令將會在項目目錄E:\demo\fourth\fourth\spiders下創建模塊文件anjuke.py,以記事本打開然後添加代碼,主要代碼:
- # -*- coding: utf-8 -*-
- # Scrapy spider 模塊
- # 采集安居客房源信息
- # 采集結果保存在anjuke-result.xml中
- import os
- import time
- import scrapy
- from gooseeker import GsExtractor
- class AnjukeSpider(scrapy.Spider):
- name = "anjuke"
- allowed_domains = ["'anjuke.com'"]
- start_urls = (
- 'https://bj.zu.anjuke.com/fangyuan/p1',
- )
- def parse(self, response):
- print("----------------------------------------------------------------------------")
- # 引用提取器
- bbsExtra = GsExtractor()
- # 設置xslt抓取規則
- bbsExtra.setXsltFromAPI("31d24931e043e2d5364d03b8ff9cc77e", "安居客_房源")
- # 調用extract方法提取所需內容
- result = bbsExtra.extractHTML(response.body)
-
- # 打印采集結果
- print(str(result).encode('gbk','ignore').decode('gbk'))
- # 保存采集結果
- file_path = os.getcwd() + "/anjuke-result.xml"
- open(file_path,"wb").write(result)
- # 打印結果存放路徑
- print("采集結果文件:" + file_path)
啟動爬蟲,進入項目目錄E:\demo\fourth下,在此處打開命提示符窗口輸入命令:
- 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