1. 程式人生 > >Python3.5下安裝&測試Scrapy

Python3.5下安裝&測試Scrapy

版本過低 如果 ems 編寫 esp bsp 分享圖片 spi 基礎

1、引言

  Scrapy框架結構清晰,基於twisted的異步架構可以充分利用計算機資源,是做爬蟲必備基礎,本文將對Scrapy的安裝作介紹。

2、安裝lxml

  2.1 下載地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted  選擇對應python3.5的lxml庫

技術分享圖片

2.2 如果pip的版本過低,先升級pip:

python -m pip install -U pip

2.3 安裝lxml庫(先將下載的庫文件copy到python的安裝目錄,按住shift鍵並鼠標右擊選擇“在此處打開命令窗口”)

pip install lxml-4.1.1-cp35-cp35m-win_amd64.whl

看到出現successfully等字樣說明按章成功。

3、 安裝Twisted庫

3.1 下載鏈接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted  選擇對應python3.5的庫文件

  技術分享圖片

3.2 安裝

pip install Twisted-17.9.0-cp35-cp35m-win_amd64.whl

  看到出現successfully等字樣說明按章成功。

4、安裝Scrapy

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

pip install scrapy

  看到出現successfully等字樣說明按章成功。

5、Scrapy測試

5.1 新建項目

  先新建一個Scrapy爬蟲項目,選擇python的工作目錄(我的是:H:\PycharmProjects 然後安裝Shift鍵並鼠標右鍵選擇“在此處打開命令窗口”),然後輸入命令:

scrapy startproject allister

  技術分享圖片

  對應目錄會生成目錄allister文件夾,目錄結構如下:

└── allister
├── allister
│ ├── __init__.py
│ ├── items.py
│ ├── pipelines.py
│ ├── settings.py
│ └── spiders
└── scrapy.cfg


簡單介紹個文件的作用:
# -----------------------------------------------
scrapy.cfg:項目的配置文件;
allister/ : 項目的python模塊,將會從這裏引用代碼
allister/items.py:項目的items文件
allister/pipelines.py:項目的pipelines文件
allister/settings.py :項目的設置文件
allister/spiders : 存儲爬蟲的目錄

5.2 修改allister/items.py文件:

# -*- coding: utf-8 -*-

# Define here the models for your scraped items
#
# See documentation in:
# https://doc.scrapy.org/en/latest/topics/items.html

import scrapy


class AllisterItem(scrapy.Item):
    name = scrapy.Field()
    level = scrapy.Field()
    info = scrapy.Field()

  

5.3 編寫文件 AllisterSpider.py

# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : ItcastSpider.py
# @Author: Allister.Liu
# @Date  : 2018/1/18
# @Desc  :

import scrapy
from allister.items import AllisterItem


class ItcastSpider(scrapy.Spider):
    name = "ic2c"
    allowed_domains = ["http://www.itcast.cn"]
    start_urls = [
        "http://www.itcast.cn/channel/teacher.shtml#ac"
    ]

    def parse(self, response):

        items = []

        for site in response.xpath(‘//div[@class="li_txt"]‘):

            item = AllisterItem()

            t_name = site.xpath(‘h3/text()‘)
            t_level = site.xpath(‘h4/text()‘)
            t_desc = site.xpath(‘p/text()‘)

            unicode_teacher_name = t_name.extract_first().strip()
            unicode_teacher_level = t_level.extract_first().strip()
            unicode_teacher_info = t_desc.extract_first().strip()

            item["name"] = unicode_teacher_name
            item["level"] = unicode_teacher_level
            item["info"] = unicode_teacher_info

            items.append(item)

        return items

  

編寫完成後復制至項目的 \allister\spiders目錄下,cmd選擇項目根目錄輸入以下命令:  

scrapy crawl ic2c -o ic2c_infos.json -t json

  抓取的數據將以json的格式存儲在ic2c_infos.json文件中;

技術分享圖片

如果出現如下錯誤請看對應解決辦法:

Python3.5下安裝&測試Scrapy