51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1476|回复: 2
打印 上一主题 下一主题

Scrapy 入门:Hello Scrapy

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-2-21 17:09:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 需要的各种库:


  1. apt-get install -y python-dev gcc  libxml2-dev libxslt1-dev libffi-dev python-pip
  2. pip install -U pip
  3. pip install lxml twisted cryptography
  4. pip install scrapy
复制代码
Mac 自定义安装
  1. pip install scrapy
复制代码
scrapy bootstrap
装好之后,当然就是 hello-scrapy 的时间了。
使用下列命令新建一个工程
  1. scrapy startproject Demo
复制代码
使用下列命令进入目录,然后新建一个 Spider 来工作,这里是使用的名称为 MeiSpider, 抓取 bj.meituan.com 的数据。
  1. cd Demo
  2. scrapy genspider MeiSpider bj.meituan.com
复制代码
执行之后的目录结构如下:
  1. ├── Demo
  2. │   ├── __init__.py
  3. │   ├── items.py            # item
  4. │   ├── pipelines.py        # pipeline
  5. │   ├── settings.py         # project setting file
  6. │   └── spiders
  7. │       ├── __init__.py     
  8. │       └── MeiSpider.py    # genspider generatored spider file
  9. └── scrapy.cfg              # configuration file

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


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

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


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 11:36 , Processed in 0.064891 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表