首页 > 其他分享 >Scrapy爬虫框架快速入门

Scrapy爬虫框架快速入门

时间:2023-01-19 20:55:36浏览次数:40  
标签:文件 需要 入门 scrapy 爬虫 爬取 Scrapy 设置

安装scrapy

pip install scrapy -i https://pypi.douban.com/simple/

安装过程可能遇到的问题
  1. 版本问题导致一些辅助库没有安装好,需要手动下载并安装一个辅助库Twisted
  2. 运行时候:ModuleNotFoundError: No module named 'attrs'
    pip install attrs --upgrade
  3. 运行时候:Loading "scrapy.core.downloader.handlers.http.HTTPDownload Handler" for scheme "https"
    pip install pywin32

创建项目

CMD进入需要创建项目的目录下,输入命令

scrapy startproject ×××

 命令基本不需要死记硬背,正如下图所示,会告诉你接下来需要输入的命令

 

 设置实体文件(建立要获取的字段)

这个文件内会写入后续需要爬取的字段,scrapy.Field()就是变量存储区域,通过“spiders”里的爬虫文件获取的内容都会存储在此处设置的区域里。

然后以实体文件作为中转站,将这些变量传输到其他文件中,例如,传输到管道文件中进行数据存储等处理。设置完实体文件,就可以在实战中应用刚才创建的变量了。

修改设置文件(设置Robots协议和User-Agent,激活管道文件)

运行爬取文件可能会遇到DEBUG:Forbidden by robots txt 说明百度的Robots协议禁止Scrapy框架直接爬取。

解决这个问题可以通过设置文件20行左右的位置把OBEY置为False

 设置User-Agent同样在设置文件40行左右位置,添加一行User-Agent

 要进行数据的爬后处理,即将数据写入数据库或文件等后续操作。所以先要激活管道

后面的数字只是排序的顺序,越小越靠前

如果管道文件有新增类名,就需要在这里添加

在文件夹“spiders”中编写爬虫逻辑(核心爬虫代码)

第10 行start_urls是一个列表存放需要爬取的url,如果需要爬取多个地址(例如存在ajex动态页面爬取),可以往这个start_urls列表中append多个地址

爬虫代码基本都在parse中

第13行实例化items,就是实例化需要提取的字段

后面几行都是基本的爬虫代码这里就解释了,需要说一下的是response.text才是网页源代码

 注:除了常见的用正则表达式提取,还有一个库比较常见就是Beautifulsoup

设置管道文件(爬后处理)

爬取后需要存入文件或者下载文件

这里需要说一下,第15行和第24行去判断spider.name是为了在运行的时候进行区分。

当然写管道的时候,可以把所有处理方式写在一个类中,通过spider.name去进行区分,也可以像下图一样用不同的类去写。但如果是不同的类就需要到设置文件中把新增类添加到设置中去。

第26行urlretrieve()函数是用来下载图片

 最后运行

最后在命令行输入

scrapy crawl **** 

 

标签:文件,需要,入门,scrapy,爬虫,爬取,Scrapy,设置
From: https://www.cnblogs.com/yetangjian/p/17057552.html

相关文章

  • 230119_50_SpringBoot入门
    多环境配置文件指定方式一:properites文件文件名可以是application-{profile}.properties/yml,用来指定多个环境版本:server.port=8081//testserver.port=80......
  • scrapy框架安装过程报错
    FailedcleaningbuilddirforcryptographyFailedtobuildcryptographyCouldnotbuildwheelsforcryptographywhichusePEP517andcannotbeinstalleddirectl......
  • C#爬虫开发小结
    前言2023年以来一直很忙,临近春节,各种琐事更多,但鸽了太久没写文章总是不舒坦,忙中偷闲来记录下最近用C#写爬虫的一些笔记。爬虫一般都是用Python来写,生态丰富,动态语言开发......
  • 关于Markdown的学习,整理一些关于Markdown的入门使用,新手必备!!!
    关于入门都很简单,希望大家多多练习!一级标题一级标题:#+空格+标题名字二级标题二级标题:##+空格+标题名字三级标题三级标题:###+空格+标题名字四级标题四级标题:####空......
  • win10下python3.9的代理报错问题解决(附web3的polygon爬虫源码)
    背景因为工作中经常需要代理访问,而开了代理,request就会报错SSLError,如下:requests.exceptions.SSLError:HTTPSConnectionPool(host='test-admin.xxx.cn',port=443):Ma......
  • 【超详细】MySQL零基础入门实战
    文章目录​​1.MySQL入门​​​​1.1.源码安装MySQL5.7​​​​1.2.Docker安装MySQL5.7​​​​1.3.忘记MySQL超户密码​​​​1.4.MySQL支持简体中文​​​​2.MySQL数据库......
  • 消息中间件RabbitMQ急速入门
    文章目录​​1.RabbitMQ消息队列和核心概念​​​​1.1.RabbitMQ介绍​​​​1.2.RabbitMQ图解​​​​1.3.RabbitMQ核心概念​​​​1.4.容器化部署RabbitMQ​​​​1.5.Ja......
  • Kafka快速入门(命令行操作)
    Kafka命令行操作Kafka基础架构主题命令行操作1)查看操作主题命令参数bin/kafka-topics.sh-参数-描述–bootstrap-server<String:servertoconnectto>连接的KafkaBroker......
  • Kafka快速入门(生产者)同步异步发送、分区、消息精确一次发送、幂等性、事务
    Kafka生产者1.生产者消息发送流程1.1发送原理在消息发送的过程中,涉及到了两个线程——main线程和Sender线程。在main线程中创建了一个双端队列RecordAccumulator。......
  • Kafka快速入门(安装集群)
    安装部署1.集群规划hadoop102hadoop103hadoop104zkzkzkkafkakafkakafka2.集群部署0)官方下载地址:​​官网​​1)解压安装包tar-zxvfkafka_2.12-3.0.0.tgz-C/opt/module......