首页 > 其他分享 >scrapy

scrapy

时间:2022-09-29 18:55:57浏览次数:79  
标签:__ 项目 projectname py 爬虫 scrapy

scrapy项目搭建

目录

中文文档

https://docs.pythontab.com/scrapy/scrapy0.24/index.html

一、scrapy运行原理

img

Scrapy主要有以下组件:

  • 引擎(Scrapy Engine)
  • Item 项目
  • 调度器(Scheduler)
  • 下载器(Downloader)
  • 爬虫(Spiders)
  • 项目管道(Pipeline)
  • 下载器中间件(Downloader Middlewares)
  • 爬虫中间件(Spider Middlewares)
  • 调度中间件(Scheduler Middewares)

二、工程搭建流程

1、创建一个爬虫专用的解析器环境,用于存放爬虫相关的依赖包

2、新建爬虫项目

# 会在当前目录下初始化工程
scrapy startproject 工程名

3、生成一个爬虫

# 在爬虫工程下初始化一个爬虫
cd 工程名
scrapy genspider one "one.cn"

4、打开工程,配置虚拟解释器环境

5、在命令中运行爬虫scrapy crawl 爬虫名(指的是步骤3中的one)

5.1、在pycharm中运行爬虫

【新建run.py】

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from scrapy import cmdline

if __name__ == '__main__':
    cmdline.execute("scrapy crawl demo".split())

三、数据抓取步骤

爬虫框架的具体使用步骤如下:

  1. 选择目标网站
  2. 定义要抓取的数据(通过Scrapy Items来完成的)
  3. 编写提取数据的spider
  4. 执行spider,获取数据
  5. 数据存储

四、 目录文件说明

当我创建了一个scrapy项目后,继续创建了一个spider,目录结构是这样的:

下面来简单介绍一下各个主要文件的作用:

scrapy.cfg :项目的配置文件
projectname/ :项目的Python模块,将会从这里引用代码
projectname/items.py :项目的目标文件
projectname/pipelines.py :项目的管道文件
projectname/settings.py :项目的设置文件
projectname/spiders/ :存储爬虫代码目录

五、基础配置修改

【settings.py】

# 不遵守机器人规则
ROBOTSTXT_OBEY = False

# 添加user-agent请求头用户代理(基本反爬操作)
DEFAULT_REQUEST_HEADERS = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
  'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}

标签:__,项目,projectname,py,爬虫,scrapy
From: https://www.cnblogs.com/hhddd-1024/p/16742628.html

相关文章

  • Python错误:scrapy框架中callback无法调用
    问题描述:当碰到scrapy框架中callback无法调用,直接略过了,别提多头疼了!scrapy.Request(url,headers=self.header,callback=self.details) 解决办法:原因分析:url可......
  • Scrapy 入门笔记
    scrapy框架scrapyscrapy是什么?Scrapy是一个为了爬取网站数据,提取结构化数据而编写的应用框架。可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中。安......
  • Python错误:模块导入失败from scrapy.xlib.pydispatch import dispatcher
    问题描述:python中使用pip安装模块时,出现:Fatalerrorinlauncher:Unabletocreateprocessusing'"' 解决办法: 原因分析:scrapy版本不对。测试了一下,发现最......
  • 使用 Scrapy + Selenium 爬取动态渲染的页面
    在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值。但是通过......
  • Scrapy 如何传递 get请求的params
    我们都知道在requests中可以使用requests.get(url,params)的方式传值那么在scrapy中如何传值呢直接看代码fromurllib.parseimporturlencodeparams={'wbtre......
  • Scrapy框架
    一、Scrapy介绍Scrapy是一个Python编写的开源和协作的框架。起初是用于网络页面抓取所设计的,使用它可以快速、简单、可扩展的方式从网站中提取所需的数据。Scrapy也是......
  • scrapy框架之item与pipelines
    继续以起点小说为例子,我们要做的就是把对象存储到item(类似于一个字典)中,在通过pipelines持久化到txt文件中。之前我们在运行爬虫的后面加“-o爬虫名称”这样很方便,但是也......
  • scrapy框架之生成存储文件json,xml、csv文件
    以起点小说网举例子网址https://www.qidian.com/rank/yuepiao/默认大家已经生成好scrapy项目了,如果不会请参考我之前的文章scrapy框架之创建项目运行爬虫爬取网页获......
  • scrapy框架之创建项目运行爬虫
    创建scrapyscrapystartproject项目名称创建蜘蛛(爬虫文件)scrapygenspider蜘蛛名称网址爬取网页(举百度的列子)编写爬虫文件importscrapyclassBaiduSpider(......
  • 39. [实例]Scrapy框架应用
    1.前言通过上一节《PythonScrapy爬虫框架详解》的学习,您已经对Scrapy框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程。本节将通过一个的简单爬虫项目对......