My_JIE 发表于 2019-2-21 17:09:06

Scrapy 入门:Hello Scrapy

scrapy install
[*]官方文档方式
其实现在scrapy 的文档做的挺好, 安装文档在首页就有 点我点我。
下面说说我的另类安装方法,我说这个方法,在某些方面有优势,但不是绝对优势,利弊自己取舍。
[*]Windows 自定义安装


[*]打开 https://pypi.python.org 。
[*]在页面的搜索框中输入 scrapy, 开始搜索,找到最新的版本,我这个时候是https://pypi.python.org/pypi/Scrapy/1.0.3。
[*]翻页到页面的最底部,找到 Requires Distributions 部分,看看都有啥,我这里的是:Twisted(>=10.0.0),w3lib (>=1.8.0), queuelib, lxml, pyOpenSSL, cssselect (>=0.9), six (>=1.5.2), service-identity。
[*]对于上面的依赖,依次尝试 5,6步。
[*]在 cmd 下面执行命令 pip install xxxx, 如果提示安装成功, 跳过第6步,接着安装下一个。
[*]去 Google 搜索 xxxx msi {version} 这里的version请填写满足依赖条件的版本号, 认准了 pypi.python.org 的域名,点进去,找到msi的下载包,下载下来进行安装。
[*]到这里,依赖已经安装完毕,执行 pip install scrapy。如果最后提示成功,说明你的安装成功了。
[*]Ubuntu 自定义安装


[*]Ubuntu 安装最简单的方式当然是官方的 ppa 安装了啊。
[*]Ubuntu 通过pip 安装 最重要的是 pip 需要的各种库:
apt-get install -y python-dev gcclibxml2-dev libxslt1-dev libffi-dev python-pip
pip install -U pip
pip install lxml twisted cryptography
pip install scrapyMac 自定义安装
pip install scrapyscrapy bootstrap装好之后,当然就是 hello-scrapy 的时间了。
使用下列命令新建一个工程scrapy startproject Demo使用下列命令进入目录,然后新建一个 Spider 来工作,这里是使用的名称为 MeiSpider, 抓取 bj.meituan.com 的数据。cd Demo
scrapy genspider MeiSpider bj.meituan.com执行之后的目录结构如下:├── Demo
│   ├── __init__.py
│   ├── items.py            # item
│   ├── pipelines.py      # pipeline
│   ├── settings.py         # project setting file
│   └── spiders
│       ├── __init__.py   
│       └── MeiSpider.py    # genspider generatored spider file
└── scrapy.cfg            # configuration file

2 directories, 10 files查询下现在的 spiders,$ scrapy list
MeiSpider # 刚刚新建的 MeiSpider 在项目 Demo 下面的 spiders 目录中就有了我们刚生成的 MeiSpider.py 文件,打开这个文件,看看内容:# -*- coding: utf-8 -*-
import scrapy


class MeispiderSpider(scrapy.Spider):
    name = "MeiSpider"
    allowed_domains = ["bj.meituan.com"]
    start_urls = (
      'http://www.bj.meituan.com/',
    )

    def parse(self, response):
      pass注意一下, 生成的代码里面的 start_urls 中的 url 有错误,我们手动改成 bj.meituan.com 。
如果你迫不及待的想尝试下效果,可以试试这个:scrapy crawl MeiSpider --nolog哈哈,是不是什么结果也没有! 对啊, 因为我们还没告诉 Spider 该怎么工作。这个就是 Spider 中 parse 方法的作用了, 我们尝试把 parse 改成这样def parse(self, response):
    return {'desc', 'hello scrapy', "url": response.url}接着运行 scrapy crawl MeiSpider -t jsonlines --nolog -o - 是不是很有意思,出来了结果了,这样,一个简单的 Hello-Scrapy 就完成了。

Miss_love 发表于 2020-12-31 08:52:45

支持分享
页: [1]
查看完整版本: Scrapy 入门:Hello Scrapy