1. 程式人生 > >在Python3.5下安裝和測試Scrapy爬網站

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

這裡寫圖片描述

1. 引言

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

2. 安裝Twisted

2.1 同安裝Lxml庫

這裡寫圖片描述

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

建立爬蟲模組,進入專案目錄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 = (
        'http://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

這裡寫圖片描述

注:網站若發現抓取時報重定向錯誤了,嘗試修改user-agent後,再啟動爬蟲爬取資料。操作步驟如下:
1、在爬蟲專案目錄(這裡為E:\demo\fourth\fourth)下建立模組檔案middlewares.py,以記事本開啟後,新增如下程式碼:

#-*-coding:utf-8-*-
# 隨機更換user agent
import random
from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware

class RotateUserAgentMiddleware(UserAgentMiddleware):
    def __init__(self, user_agent=''):
        self.user_agent = user_agent

    def process_request(self, request, spider):
        ua = random.choice(self.user_agent_list)
        if ua:
            request.headers.setdefault('User-Agent', ua)

    user_agent_list = [\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"\
        "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",\
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",\
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",\
        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",\
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",\
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]

2、修改專案配置檔案settings.py,加上如下程式碼:

DOWNLOADER_MIDDLEWARES = {  
            'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None,  
            'fourth.middlewares.RotateUserAgentMiddleware':400,  
}

檢視儲存結果檔案,進入Scrapy爬蟲專案目錄,這裡為E:\demo\fourth,找到名稱為anjuke-result.xml的資料夾然後開啟

這裡寫圖片描述

5. 總結

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

6. 集搜客GooSeeker開原始碼下載源

7.修改記錄

  • 2017.03.02 補充報重定向錯誤解決方案

相關推薦

Python3.5安裝測試Scrapy網站

1. 引言 Scrapy框架結構清晰,基於twisted的非同步架構可以充分利用計算機資源,是爬蟲做大的必備基礎。本文將講解如何快速安裝此框架並使用起來。 2. 安裝Twisted 2.1 同安裝Lxml庫 2.2 安裝twi

Python3.5安裝&測試Scrapy

版本過低 如果 ems 編寫 esp bsp 分享圖片 spi 基礎 1、引言   Scrapy框架結構清晰,基於twisted的異步架構可以充分利用計算機資源,是做爬蟲必備基礎,本文將對Scrapy的安裝作介紹。 2、安裝lxml   2.1 下載地址:https://

windows安裝使用scrapy

class sys enc imp log pos pip 測試命令 使用   首先,要確保已經正確安裝了python環境,並安裝了pip包   接著,打開cmd或者powershell ,輸入命令 pip install scrapy 。安裝完之後 運行scrapy性能測

python3爬蟲之安裝使用scrapy

環境:win10-64位、python3.6 安裝依賴 安裝lxml pip install lxml 安裝zope.interface pip install zope.interface 安裝wheel pip inatall whee

關於在Python3.5安裝MySQL-python模組的問題

近端日子在學習Python的Django框架的時候,有需要安裝MySQL-python模組,一開始百度到用pip安裝: pip install MySQL-python 但是在安裝的時候卻報錯了: mysql.c(42): fatal error C10

windows10+python3.5同時安裝caffetensorflow

這幾天需要安裝caffe,但是大部分教程都沒有說怎麼在已經有tensorflow的同時安裝caffe。在這裡記錄一下,主要寫一下整個安裝過程中的大致流程,忽略詳細步驟。 首先需要安裝anaconda,這裡安裝anaconda的主要原因是,它能夠管理環境,也就是

Python3.5成功安裝Scrapy框架

一、本地環境win10+64位作業系統二、安裝步驟1、升級pip1.1 開啟命令提示符視窗,輸入命令:python -m pip install --upgrade pip2、安裝Visual Studio 2015專業版,自行解決。本人從事.NET開發,本機一直都有安裝,未

centos6.5安裝python3安裝python3虛擬環境創建venv

替代品 虛擬環境 由於 需要 tools python2.6 ipy模塊 python2 pip3   原因:在安裝完centos6.5後,通過命令行鍵入python時,默認為python2.6.6版本,系統並沒有安裝python3版本。又想學習python3,因此需要在c

python3.5+win7 安裝 numpy scipy的總結

.com com uci 自動 nac one win7 org 問題 1.安裝numpy。 官網下載numpy。下載地址為https://pypi.Python.org/pypi/numpy。選擇與Python版本相對應的numpy版本。之後在python35的

如何解決python3.5.2安裝scrapy的無法查找到vsvarall的問題

python scrapy vs140comntools vsvarall.bat windows twisted 最近在使用python的Scrapy爬蟲框架進行相應爬蟲項目的開發和學些。但是在Windows環境下安裝Scrapy的運行環境時,一直vsvarall.bat無法找到(i

CentOS7.5安裝tensorflow運行tf-faster-rcnn

sci manager 上傳 orm cpu plt 能夠 new ron 一、升級服務器的python版本 0、通過yum安裝後續可能會依賴的包。註意:如果在後續的安裝過程中,遇到缺少某些系統模塊的錯誤的時候,需要通過yum源進行安裝,然後需要重新編譯python。

Anaconda環境的TensorFlow安裝測試

       近兩年掀起的人工智慧熱將人工神經網路技術推向了新技術的最前沿。毋庸置疑,人工智慧的再次興起得益於深度神經網路理論的突破和革新,而深度神經網路技術的表現也將很大程度上決定這次人工智慧發展的前景。筆者作為一個技術菜鳥,最近在學習TensorFlow深

python3爬蟲】Scrapy Win10安裝與新建Scrapy專案

詳細安裝教程可參考: http://www.runoob.com/w3cnote/scrapy-detail.html https://segmentfault.com/a/1190000013178839 其他教程: https://oner-wv.gitbooks.io/sc

解決已安裝python2.7 來安裝python3.5的共存安裝問題及Anoconda安裝及搭建:cpu的TensorFlow,Keras

首先背景win10的64位,我已經安裝python2.7.10在C盤,而且我這個是裝cpu版本的tensorflow 介紹一下pycharm可以支援2.7和3.5 Anoconda僅支援3.5 python3.5自帶pip不用下載,不用python2.7這麼麻煩 /我這個方法和別人不一樣,不

解決已安裝python2.7 來安裝python3.5的共存安裝問題及Anoconda安裝及搭建:TensorFlow、Keras

首先背景win10的64位,我已經安裝python2.7.10在C盤 介紹一下pycharm可以支援2.7和3.5 Anoconda僅支援3.5 python3.5自帶pip不用下載,不用python2.7這麼麻煩 /我這個方法和別人不一樣,不刪除任何東西,py

TensorFlow:Anaconda環境的TensorFlow安裝測試

       近兩年掀起的人工智慧熱將人工神經網路技術推向了新技術的最前沿。毋庸置疑,人工智慧的再次興起得益於深度神經網路理論的突破和革新,而深度神經網路技術的表現也將很大程度上決定這次人工智慧發展的前景。筆者作為一個技術菜鳥,最近在學習TensorFlow深度學習框架的同時

python3.5.2安裝selenium3.4.1及firefoxchrome瀏覽器設定

第一步安裝python3.5.2,官網下載安裝 第二步安裝selenium3.4.1(預設安裝了pip和setuptools) pip install -U selenium 第三步安裝webdriver 安裝firefox的web

Win7 64位環境python3.5.4安裝步驟

  一.初始環境介紹 然後從官網:python官網下載windows對應的python版本, 二.安裝流程 1.將python-3.5.4-amd64.exe抓到本地後,右鍵選擇”以管理員身份執行”,這一步是必須的,不然後面安裝時會報執行錯誤.  2. 執行安裝包

CentOS6.5 安裝Python3.6

CentOS 6.5上預設安裝的python版本是2.6.6,系統自帶的舊版本python被系統很多其他軟體環境依賴,不能解除安裝原Python,選擇Python3.6進行全新安裝。 1、首先先下載Python3.6的linux安裝包 2、root許可權登入Centos6

Lua——windows安裝使用LuaJIT測試以及圖例

1.準備 1) 下載LuaJIT原始碼 2) 確保你的機器上安裝了visual studio 2.編譯 方法一:其實這些快捷方式一直都存在,目錄是%systemroot%/Program Files (x86)/Microsoft Visual Studio 12.0/Commo