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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。