首页 > 其他分享 >Scrapy框架基本使用(从安装到运行)

Scrapy框架基本使用(从安装到运行)

时间:2023-11-07 16:00:10浏览次数:30  
标签:框架 安装 scrapy 源文件 duanzixing Scrapy article main com

Scrapy基本使用

以抓取段子星中的标题和内容为例:https://duanzixing.com/

1. Windows下安装:

pip install twisted
pip install pywin32
pip install scrapy

2. 创建工程

# scrapy startproject <projectName>
scrapy startproject duanzixing

3. 新建爬虫源文件

# 进入工程目录
cd duanzixing
# 创建爬虫源文件(spiderName是一个爬虫源文件的唯一标识,www.xxx.com后续可以在源文件中更改)
# scrapy genspider <spiderName> <www.xxx.com>
scrapy genspider main www.xxx.com

4. 修改一些配置

在项目目录的settings.py中修改

  • 设置User-Agent进行UA伪装

    USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0"
    
  • 设置不遵从robots协议(如果遵守那就没什么能爬的了哈哈)

    ROBOTSTXT_OBEY = False
    
  • 配置只显示错误日志信息,否则过多的日志让我们不容易看到控制台的输出信息

    LOG_LEVEL = "ERROR"
    

5. 编写代码

main.py源文件

import scrapy


class MainSpider(scrapy.Spider):
    name = "main"

    # 允许的域名:用来限定start_urls中哪些url可以进行请求发送(通常都不会用)
    # allowed_domains = ["www.xxx.com"]  # 这个注释掉就行,基本不用

    # 起始url列表:该列表中存放的url会被scrapy自动进行请求的发送
    start_urls = ["https://duanzixing.com/"]

    # 用作于数据解析,response参数表示的就是返回的响应对象
    # start_urls中元素的个数等于该函数调用的次数
    def parse(self, response):
        articleList = response.xpath('//section[@class="container"]//article')
        for article in articleList:
            title = article.xpath('./header/h2/a/text()')[0].extract()
            content = article.xpath('./p[2]/text()')[0].extract()
            print(f"{title}:\n\t{content}\n")

6. 执行代码

在项目目录中执行以下代码:

# scrapy crawl <spiderName>
scrapy crawl main

标签:框架,安装,scrapy,源文件,duanzixing,Scrapy,article,main,com
From: https://www.cnblogs.com/junlin623/p/17815194.html

相关文章

  • Anaconda Miniconda conda 安装-换源-使用命令等
    Miniconda是conda的精简版安装程序。它是Anaconda的小型引导程序版本,仅包含conda,python,它们依赖的软件包以及少量其他有用的软件包,包括pip,zlib和其他一些软件包。使用condainstallcommand可以从Anaconda存储库中安装720+个其他conda软件包。(官方)https://docs.conda.io/en/lat......
  • Util应用框架基础(五) - 异常处理
    本节介绍Util应用框架如何处理系统错误.概述系统在运行过程中可能发生错误.系统错误可以简单分为两类:系统异常系统本身出现的错误.业务异常不满足业务规则出现的错误.如何处理系统异常如果发生系统异常,大多数情况下,你除了记录异常日志外,可能无法处理它们.一个......
  • docker 构建alpine基础镜像安装ssh服务
    1.创建DockerfilemkdiralpinecdalpinetouchDockerfile键入以下内容#指定基础镜像Fromalpine#维护信息[email protected]##替换源#替换阿里云的源RUNecho"http://mirrors.aliyun.com/alpine/latest-stable/main/">/etc/apk/repositories......
  • 若依框架AjaxResult改造适应Swagger接口文档
    一、概述若依框架后端使用的响应对象AjaxResult,和Swagger存在不兼容问题,导致返回体即使使用了Swagger注解,但是Swagger接口文档中,不显示返回体的对象Swagger文档: 若依Gitee上,也存在此问题:https://gitee.com/y_project/RuoYi-Vue/commit/6805a96e533f56b86aaeecccc2693c6ff40......
  • redis-shake安装部署(4.0.2)
    环境:Os:Centos7redis-shake:4.0.2说明:redis源端和目的端都是单节点1.项目地址https://github.com/tair-opensource/RedisShake/tags2.下载介质我这里下载的版本是4.0.2,文件如下:redis-shake-linux-amd64.tar.gz 3.安装[root@localhostsoft]#mkdir-p/opt/redis-shake......
  • NodeJS系列(14)- TypeScript (一) | 安装 TypeScript、TypeScript 常用类型
    JavaScript现在是有史以来最广泛使用的跨平台语言之一。JavaScript最初是一种用于向网页添加微不足道的交互性的小型脚本语言,现已发展成为各种规模的前端和后端应用的首选语言。虽然用JavaScript编写的程序的大小、作用域和复杂性呈指数级增长,但JavaScript语言表达不同代码......
  • kali Linux安装pyenv
    前言pyenvpyenv可让你轻松地在多个Python版本之间切换,是一个非常不错的python版本管理工具安装步骤安装依赖apt-getinstall-ymakebuild-essentiallibssl-devzlib1g-devlibbz2-devlibreadline-devlibsqlite3-devwgetcurlllvmlibncurses5-devlibncursesw5-dev......
  • Mac m1 安装 burp suite 2023.10.3.3
    准备工具burp官方burpsuite_pro_macos_arm64_v2023_10_3_3.dmgBurpLoaderKeygen.jar:链接:https://pan.baidu.com/s/11f5lRGPwP4mINIAkZLci6Q?pwd=yq8b提取码:yq8b修改vmoptions.txt文件,添加如下内容--add-opens=java.desktop/javax.swing=ALL-UNNAMED--add-opens=java.base/jav......
  • IBM System x3400 怎么启动到可以安装?
    IBM服务器安装Windows操作系统的前提条件:IBMServerGuide光盘和Windows光盘。 IBMSystemX3400理论上不支持WindowsServer2000任何一个版本的安装(主要是因为ServerGuide光盘里面没有相关的驱动,在系统安装初始阶段无法加载阵列卡控制器的驱动)。但是你可以使用一个外置的USB......
  • 安装oracle9i时碰到缺少或无效口令提示
    在即将结束安装的时候,oracle提示要输入sys密码和system密码,自己尝试了n次都不能成功,提示ora-00988:缺少或无效口令提示。在网上查找以后,发现oracle9i对密码有如下要求:系统用户(即sys,system)口令长度不能小于7个字符。并且第一个字符不能为数字。并且全部口令中需要数字+字......