Python3 Scrapy 学习笔记(一)

文章摘要:

Python Scrapy 的安装、创建项目、爬虫入门

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools -> 解决方案

exceptions.ImportError: No module named win32api -> 解决方案

一、安装 Scrapy

运行命令:

pip install scrapy


问题一:### 安装时抛出异常 ###

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

解决方案:

http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载 twisted 对应版本的 whl 文件

(如我的 Twisted-17.9.0-cp36-cp36m-win32.whl),cp后面是 python 版本,win32代表 32 位,win_amd64代表 64 位

运行命令:

pip install C:\Users\Unnamed\Desktop\Twisted-17.9.0-cp36-cp36m-win32.whl

其中 install 后面为下载的 whl 文件的完整路径名

安装完成后,再次运行:

运行命令:

pip install Scrapy

即可成功。

问题一 END:###### END ######

二、基本使用

1、创建项目

运行命令:

scrapy startproject project_name

命令说明:在当前 cmd 指定目录下创建项目

QQ截图20180205110011.jpg


目录结构、文件说明:

project_name /
| — scrapy.cfg:项目的配置信息,主要为Scrapy命令行工具提供一个基础的配置信息。
| — project_name /
| — | — __init__.py
| — | — items.py:设置数据存储模板,用于结构化数据,如:Django的Model
| — | — pipelines.py:数据处理行为,如:一般结构化的数据持久化
| — | — settings.py:设置文件,如:递归的层数、并发数,延迟下载等
| — | — spiders /: 爬虫目录,如:创建文件,编写爬虫规则
| — | — | — __init__.py
| — | — | — ...

2、爬虫入门

先进入项目目录,运行命令:

cd project_name

创建爬虫脚本,运行命令:

scrapy genspider example example.com


示例代码 OPEN

# -*- coding: utf-8 -*-
# 变量 name: 用于区别Spider。 该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。
# 变量 start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。 后续的URL则从初始的URL获取到的数据中提取。
# parse() 是spider的一个方法。 被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象。
import scrapy
class ExampleSpider(scrapy.Spider):
    name = 'example'
    allowed_domains = ["mmonly.cc"]
    start_urls = [
        "http://www.mmonly.cc/ktmh/dmmn/136697.html",
    ]
    def parse(self, response):
        with open("1.txt", 'wb') as f:
            f.write(response.body)
        pass

END 示例代码

运行命令:

scrapy crawl example --nolog


问题二:### 运行时抛出异常 ###

exceptions.ImportError: No module named win32api

解决方案:

windows系统上出现这个问题的解决需要安装Py32Win模块,但是直接通过官网链接装exe会出现几百个错误,更方便的做法是

运行命令:

pip install pypiwin32

问题二 END:###### END ######


再次运行命令:

scrapy crawl example --nolog

成功!完美运行!!


本文部分资料引用以下地址:

http://blog.csdn.net/u013687632/article/details/57075514

http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html#item

http://python.jobbole.com/86405/

相关文章:

http://blog.xx21.cn/?id=6 【Scrapy】 Python Scrapy 学习笔记(一)

http://blog.xx21.cn/?id=7 【Scrapy】 Python Scrapy 学习笔记(二)