51Testing软件测试论坛

标题: Scrapy 入门:Hello Scrapy [打印本页]

作者: My_JIE    时间: 2019-2-21 17:09
标题: Scrapy 入门:Hello Scrapy
scrapy install
  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 就完成了。



作者: Miss_love    时间: 2020-12-31 08:52
支持分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2