scrapy爬取数据,scrapy保存到数据库

  scrapy爬取数据,scrapy保存到数据库

  本文主要介绍了利用Scrapy框架抓取网页并保存在Mysql中的实现。通过示例代码进行了非常详细的介绍,对于大家的学习或者工作都有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。

  大家好。本期,阿斌将和大家分享Scrapy爬虫框架和本地Mysql的使用方法。阿斌今天爬的网页是虎扑体育网。

  (1)打开虎扑体育网,分析网页的数据,使用xpath定位元素。

  (2)在第一个分析网页后开始创建一个scrapy爬虫项目,在终端执行以下命令:

  “scrapy startproject huty(注意:‘HPTY’是爬虫项目的名称)”,得到了下图所示的项目包:

  (3)进入“hpty/hpty/spiders”目录,创建一个名为“SWW”的爬虫文件,在终端执行以下命令:“Scrapy Gen Spider SWW”(4)前两步完成后,编辑与整个爬虫项目相关的爬虫文件。1.编辑设置文件:

  把君子协议原本是True改为False。

  然后打开原来被注释掉的这行代码。

  2.编辑用于定义数据类型的项目文件。代码如下:

  #在此定义您的报废物品的型号

  #

  #参见:中的文档

  # https://docs.scrapy.org/en/latest/topics/items.html

  进口废品

  类HptyItem(scrapy。项目):

  #在此处为您的项目定义字段,如:

  # name=scrapy。字段()

  玩家=scrapy。字段()

  团队=斗志昂扬。字段()

  等级=刺儿头。字段()

  场均得分=scrapy。字段()

  命中率=刺儿头。字段()

  三分命中率=刺儿头。字段()

  罚球命中率=scrapy。字段()

  3.使用以下代码编辑最重要的crawler文件(即“hpty”文件):

  进口废品

  从.项目导入HptyItem

  类SwwSpider(scrapy。蜘蛛):

  name=sww

  allowed _ domains=[ https://NBA . hupu.com/stats/players ]

  start _ URLs=[ https://NBA . hupu.com/stats/players ]

  定义解析(自身,响应):

  whh=response . XPath(//tbody/tr[not(@ class)])

  因为我在whh:

  Rank=i.xpath(。/td[1]/text())。extract()#排名

  Player=i.xpath(。/td[2]/a/text())。extract() #播放器

  Team=i.xpath(。/td[3]/a/text())。extract() #团队

  平均字段得分=i.xpath(。/td[4]/text())。extract() #分数

  命中率=i.xpath(。/td[6]/text())。extract() #命中率

  三点命中率=i.xpath(。/td[8]/text())。extract() #三分命中率

  罚球百分比=i.xpath(。/td[10]/text())。extract() #罚球百分比

  Data=HptyItem(球员=球员,球队=球队,排名=排名,场均得分=场均得分,命中率=命中率,三分球命中率=三分球命中率,罚球命中率=罚球命中率)

  产量数据

  4.使用以下代码编辑管道文件:

  #在此定义您的项目管道

  #

  #不要忘记将您的管道添加到ITEM_PIPELINES设置中

  #参见: https://docs.scrapy.org/en/latest/topics/item-pipeline.html

  #适用于通过单一界面处理不同的项目类型

  从光标导入光标

  从项目适配器导入项目适配器

  导入pymysql

  HptyPipeline:类

  定义流程_项目(自身、项目、蜘蛛):

  db=pymysql . connect(host= Localhost ,user=root ,passwd=root ,db=sww ,charset=utf8 )

  cursor=db.cursor()

  Player=item[ player ][0]

  Team=item[ team ][0]

  Rank=item[ rank ][0]

  平均分=项目[平均分][0]

  命中率=项目[命中率]

  三分命中率=item[三分命中率][0]

  罚球百分比=item[罚球百分比][0]

  #三分命中率=item[三分命中率][0]。条带(“%”)

  #罚球百分比=item[罚球百分比][0]。条带(“%”)

  游标. execute(

  插入nba(球员,球队,排名,场均得分,投篮命中率,三分球命中率,罚球命中率)值(%s,% s,% s,% s,% s),

  (球员、球队、排名、场均得分、命中率、三分球命中率、罚球命中率)

  )

  #提交事务操作

  数据库提交()

  #关闭光标

  cursor.close()

  db.close()

  退货项目

  (scrapy框架设计完成后,首先在mysql中创建一个名为sww的数据库,在这个数据库下创建一个名为nba的数据表。代码如下:1。创建一个数据库。

  创建数据库sww

  2.创建数据表

  创建表格nba(球员char(20)、球队char(10)、排名char(10)、场均得分char(25)、投篮命中率char(20)、三分球命中率char(20)、罚球命中率char(20));

  3.通过创建数据库和数据表可以看到这个表的结构:

  (mysql创建数据表后,再次回到终端,输入以下命令:“scrapy crawl sww”得到结果。

  这就是这篇关于使用Scrapy框架抓取网页并保存在Mysql中的文章。关于抓取网页和保存内容的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门的IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: