首页 > 其他分享 >scrapy使用

scrapy使用

时间:2024-04-12 17:02:25浏览次数:16  
标签:get self spider item scrapy 使用 def

  • 创建
    cd xx
    scrapy startproject <文件夹名> [dir]
    cd 文件目录
    scrapy genspider <文件名> <域名>
    scrapy crawl <文件名>

  • spiders
    定义的详细爬取规则

  • items
    爬取的数据结构

  • middlewares
    中间件

  • pipelines
    数据管道,负责持久存储和清洗

: 存取mongod

class MongoDBPipeline(object):
    def __init__(self):
        # 创建链接
        self.client = pymongo.MongoClient(host='localhost', port=27017)
        # 进入数据库
        self.db = self.client["test"]
        # 进入集合
        self.col = self.db["j"]

    def process_item(self, item, spider):
        # 插入数据
        self.col.insert_one(dict(item))
        return item

    def close_spider(self, spider):
        self.client.close()

:存储mysql

class BookschinaPipeline:
    def __init__(self):
        self.df = pd.DataFrame(columns=['name', 'price', 'author',
                                        'out_date', 'publisher'])
        # database 数据库名
        self.conn = pymysql.Connect(
            host='localhost',
            port=3306,
            user='root',
            password='',
            database='spiders',
            charset='utf8mb4',
            cursorclass=pymysql.cursors.DictCursor
        )
        self.cursor = self.conn.cursor()
        self.count = 1

    def process_item(self, item, spider):
        sql = """insert into bookschina_goods (name,price,author,out_date,publisher)
                                   values (%s, %s, %s, %s, %s)"""
        self.cursor.execute(sql, (
            item.get('name', ''),
            item.get('price', ''),
            item.get('author', ''),
            item.get('out_date', ''),
            item.get('publisher', '')
        ))
        self.conn.commit()
        return item

    def close_spider(self, spider):
        self.cursor.close()
        self.conn.close()
  • settings
    配置文件

  • shell命令
    scrapy shell 网址

标签:get,self,spider,item,scrapy,使用,def
From: https://www.cnblogs.com/hellojacker/p/18119345

相关文章

  • Linux下使用docker部署netcore(一)
    Linux下使用docker部署netcore(一)_linuxdocker容器部署.netcore如何确认部署成功-CSDN博客安装Docker此处在Centos7进行安装,使用其他版本的系统可能在语句上要有所更改,自行百度吧。1.首先查看自己的服务器上装没装docker,避免安装重复。1.sudoyumupdate#更新一下yum包2.......
  • 使用 SQL SERVER PROFILER 监测死锁
    作为DBA,可能经常会遇到有同事或者客户反映经常发生死锁,影响了系统的使用。此时,你需要尽快侦测和处理这类问题。死锁是当两个或者以上的事务互相阻塞引起的。在这种情况下两个事务会无限期地等待对方释放资源以便操作。下面是死锁的示意图: 本文将使用SQLServerProfile......
  • 模板函数使用类型推导时的bug
    templatestaticboolparse_a_value(T&val,Json::Valuejson_val){if(json_val.isNull())returnfalse;if(typeid(val)==typeid(int)||typeid(val)==typeid(int16_t)||typeid(val)==typeid(int8_t)||typeid(val)==typeid(int32_t)){......
  • Java stream sorted使用 Comparator 进行多字段排序
    摘要:介绍使用JavaStream流排序器Comparator对List集合进行多字段排序的方法,包括复杂实体对象多字段升降序混合排序方法。综述​ Java8的Stream使用了函数式编程模式,人如其名,它可以被用来对集合或数组进行链状流式的排序、过滤和统计等操作,从而让我们更方便的对集合或数组......
  • iperf3工具使用
    1.下载方式1.1centos服务端#直接下载yum-yinstalliperf3#在有网的机器下载离线安装包(将包上传到其他服务器即可)yum-yinstalliperf3--downloadonly--downloaddir./ 1.2win10客户端(下载之后正常安装exe即可)https://iperf.fr/download/windows/iperf-3.1.3-wi......
  • VS studio 上开发Qt——Qt VS studio Tool的使用
    1.VS上安装Qt扩展点击菜单栏【扩展】->【管理扩展】,在搜索框搜索“Qt”,点击下载QtVisualStudioTools,以2022版为例,需要关闭所有窗口才能执行安装关闭VS后,弹出安装窗口,等待其安装完成2.新建QT工程测试等待安装完成后,添加一个QtVertion后(前提已经安装了Qt开发环境)即可......
  • 如何使用 Grafana 监控文件系统状态
    当JuiceFS文件系统部署完成并投入生产环境,接下来就需要着手解决一个非常重要的问题——如何实时监控它的运行状态?毕竟,它可能正在为关键的业务应用或容器工作负载提供持久化存储支持,任何小小的故障或性能下降都可能造成不利的影响。JuiceFS启动后会实时发布自身的运行状态数......
  • Linux使用ntp时间服务器同步时间
    NTP时间同步服务器是一种基于网络的时间同步协议,它的全称是NetworkTimeProtocol,NTP的主要功能是通过互联网将计算机的系统时间同步到标准的时间服务器上,以确保在分布式系统中的所有计算机都能有一个统一、准确的时间。一、使用ntp时间服务yumintall-yntp 二、启动并设......
  • PythonOCC基础使用:建模——矩阵变换(平移/旋转/缩放/镜像)
    此处特别感谢小昌做出的贡献!PythonOCC基础使用:建模——矩阵变换(平移/旋转/缩放/镜像)-卡核(caxkernel.com) 1.平移效果图:fromOCC.Core.BRepPrimAPIimportBRepPrimAPI_MakeConefromOCC.Core.TopLocimportTopLoc_LocationfromOCC.Core.TopoDSimportTopoDS_Shapefr......
  • [openEuler]使用x2openEuler将CentOS8.2升级openEuler22.03-LTS-SP3提示MultiVersionP
    先上截图: 解决方案:卸载相关rpm包即可,内核卸载可通过#比如我要找到未使用的kernel-core的内核并卸载#动刀内核有无法启动的风险,请自行确认#查看当前内核uname-r#【输出结果】kernel-core-4.18.0-193.28.1.el8_2.x86_64#查看当前安装的kernel-core内核rpm-qkerne......