📜  Scrapy-爬取数据(1)

📅  最后修改于: 2023-12-03 15:34:52.445000             🧑  作者: Mango

Scrapy-爬取数据

Scrapy是一个Python开源网络爬虫框架,可用于抓取网站并从中提取结构化的数据。它广泛应用于数据抓取、数据挖掘以及自动化测试等领域。

主要特点
  1. 基于Twisted异步网络框架。
  2. 支持多种选择器,包括XPath、CSS、正则表达式等。
  3. 支持下载中间件和Spider中间件,可在请求和响应的处理过程中进行自定义处理。
  4. 支持分布式爬取,可在多台机器上运行,加速数据抓取。
  5. 支持自动限速,通过DOWNLOADER_DELAY和CONCURRENT_REQUESTS配置可控制爬取速度。
  6. 支持多种数据格式的导出,包括JSON、CSV、XML等。
安装

Scrapy的安装非常简单,使用pip即可完成:

pip install scrapy

在安装完成之后,我们可以在命令行中输入以下命令来检查是否安装成功:

scrapy version
爬取流程

Scrapy的爬取流程包括以下几个步骤:

  1. 创建一个Scrapy项目: scrapy startproject myproject
  2. 创建一个Spider: scrapy genspider myspider example.com
  3. 编写Spider代码: myproject/spiders/myspider.py
  4. 运行Spider: scrapy crawl myspider
例子

下面是一个简单的爬虫示例,用于爬取腾讯新闻的标题和连接:

import scrapy

class TencentNewsSpider(scrapy.Spider):
    name = 'tencentnews'
    start_urls = ['https://news.qq.com/']

    def parse(self, response):
        for news_item in response.css('.newslist li'):
            yield {
                'title': news_item.css('a::text').get(),
                'link': news_item.css('a::attr(href)').get()
            }

运行命令 scrapy crawl tencentnews 可以开始爬取腾讯新闻的数据。