使用Scrapy框架爬取网页并保存到Mysql
大家好,这一期阿彬给大家分享Scrapy爬虫框架与本地Mysql的使用。今天阿彬爬取的网页是虎扑体育网。
(1)打开虎扑体育网,分析一下网页的数据,使用xpath定位元素。
(2)在第一部分析网页之后就开始创建一个scrapy爬虫工程,在终端执行以下命令:
“scrapy startproject huty(注:‘hpty’是爬虫项目名称)”,得到了下图所示的工程包:
(3)进入到“hpty/hpty/spiders”目录下创建一个爬虫文件叫‘“sww”,在终端执行以下命令:
“scrapy genspider sww”
(4)在前两步做好之后,对整个爬虫工程相关的爬虫文件进行编辑。
1、setting文件的编辑:
把君子协议原本是True改为False。
再把这行原本被注释掉的代码把它打开。
2、对item文件进行编辑,这个文件是用来定义数据类型,代码如下:
# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.htmlimport scrapyclass HptyItem(scrapy.Item):# define the fields for your item here like:# name = scrapy.Field()球员 = scrapy.Field()球队 = scrapy.Field()排名 = scrapy.Field()场均得分 = scrapy.Field()命中率 = scrapy.Field()三分命中率 = scrapy.Field()罚球命中率 = scrapy.Field()
3、对最重要的爬虫文件进行编辑(即“hpty”文件),代码如下:
import scrapy
from ..items import HptyItemclass SwwSpider(scrapy.Spider):name = 'sww'allowed_domains = ['https://nba.hupu.com/stats/players']start_urls = ['https://nba.hupu.com/stats/players']def parse(self, response):whh = response.xpath('//tbody/tr[not(@class)]')for i in whh:排名 = i.xpath('./td[1]/text()').extract()# 排名球员 = i.xpath('./td[2]/a/text()').extract() # 球员球队 = 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(球员=球员, 球队=球队, 排名=排名, 场均得分=场均得分, 命中率=命中率, 三分命中率=三分命中率, 罚球命中率=罚球命中率)yield data
4、对pipelines文件进行编辑,代码如下:
# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html# useful for handling different item types with a single interface
from cursor import cursor
from itemadapter import ItemAdapter
import pymysqlclass HptyPipeline:def process_item(self, item, spider):db = pymysql.connect(host="Localhost", user="root", passwd="root", db="sww", charset="utf8")cursor = db.cursor()球员 = item["球员"][0]球队 = item["球队"][0]排名 = item["排名"][0]场均得分 = item["场均得分"][0]命中率 = item["命中率"]三分命中率 = item["三分命中率"][0]罚球命中率 = item["罚球命中率"][0]# 三分命中率 = item["三分命中率"][0].strip('%')# 罚球命中率 = item["罚球命中率"][0].strip('%')cursor.execute('INSERT INTO nba(球员,球队,排名,场均得分,命中率,三分命中率,罚球命中率) VALUES (%s,%s,%s,%s,%s,%s,%s)',(球员, 球队, 排名, 场均得分, 命中率, 三分命中率, 罚球命中率))# 对事务操作进行提交db.commit()# 关闭游标cursor.close()db.close()return item
(5)在scrapy框架设计好了之后,先到mysql创建一个名为“sww”的数据库,在该数据库下创建名为“nba”的数据表,代码如下:
1、创建数据库
create database sww;
2、创建数据表
create table nba (球员 char(20),球队 char(10),排名 char(10),场均得分 char(25),命中率 char(20),三分命中率 char(20),罚球命中率 char(20));
3、通过创建数据库和数据表可以看到该表的结构:
(6)在mysql创建数据表之后,再次回到终端,输入如下命令:“scrapy crawl sww”,得到的结果如下图所示:
使用Scrapy框架爬取网页并保存到Mysql相关推荐
- 在ubuntu 16.04里使用python—scrapy将爬取到的数据存到mysql数据库中的一些随笔
一.将爬取的数据保存到mysql数据库的代码(已经能将爬取的数据保存到json文件) (1)编辑Pipeline.py文件 (2)编辑settings.py文件 二.将数据保存至mysql数据库出现的 ...
- Beautifulsoup爬取起点中文网 保存到mysql
一.分析网页 目标网站:起点中文网 目标数据:类别(categoryName)小说书名(bookName) 小说链接(middleUrl)字数(wordsNums) 作者(updateTiems) 最 ...
- python爬虫scrapy框架爬取网页数据_Scrapy-Python
scrapy Scrapy:Python的爬虫框架 实例Demo 抓取:汽车之家.瓜子.链家 等数据信息 版本+环境库 Python2.7 + Scrapy1.12 初窥Scrapy Scrapy是一 ...
- 一篇文章让你轻松学会python爬取的数据保存到MySQL中,有案例哦
文章目录 pymysql 基本使用 八个步骤以及案例分析 一.导入pymysql模块 二.获取到database的链接对象 三.创建数据表的方法 四.获取执行sql语句的光标对象 五.定义要执行的sq ...
- python中scrapy可以爬取多少数据_python中scrapy框架爬取携程景点数据
------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:https://blog.csdn.net/sdksdk0/article/de ...
- 实现Scrapy框架爬取酷狗音乐Top100名,并存储为TXT,JSON,CSV和Excel格式数据
前言 实现Scrapy框架爬取网页数据(酷狗音乐Top100名,包括排名信息.歌手信息.歌曲名.歌曲时长) 一.创建项目 在cmd中输入: scrapy startproject kugouScrap ...
- python scrapy框架爬取知乎提问信息
前文介绍了python的scrapy爬虫框架和登录知乎的方法. 这里介绍如何爬取知乎的问题信息,并保存到mysql数据库中. 首先,看一下我要爬取哪些内容: 如下图所示,我要爬取一个问题的6个信息: ...
- 使用Scrapy框架爬取慕课网页
想要完成一个scrapy爬虫框架,那首先得明确自己想要爬取的东西是什么,要选择什么样的爬取方法.接下来我就讲一下我使用Scrapy框架爬取慕课网的一些思路以及过程. 思路:(1)打开慕课网址,并分析网 ...
- 基于Scrapy框架爬取豆瓣《复联4》影评,并生成词云
基于Scrapy框架爬取豆瓣<复联4>影评,并生成词云 1. 介绍及开发环境 2. 爬虫实现 2.1 新建项目 2.2 构造请求 2.3 提取信息 2.4 数据存储 2.4 运行结果 3. ...
- 03_使用scrapy框架爬取豆瓣电影TOP250
前言: 本次项目是使用scrapy框架,爬取豆瓣电影TOP250的相关信息.其中涉及到代理IP,随机UA代理,最后将得到的数据保存到mongoDB中.本次爬取的内容实则不难.主要是熟悉scrapy相关 ...
最新文章
- jQuery学习笔记——jQuery选择器详解种类与方法
- Spring Countries在Apusic上部署
- Vmware虚拟机网络及IP配置
- 我的奔腾B50 MT豪华版 典雅灰 – 验车篇
- vue 生命周期详解
- Thread线程类及多线程
- mysql视图实现的_mysql视图是什么?怎么实现?
- 用clipboard.js实现纯JS复制文本到剪切板
- 连接驱动_在jdbc中完成对于jdbc参数、jdbc变量,加载驱动,创建连接的封装
- Java main()方法
- import sys; print“%s.%s.%s”% sys.version_info[ :3];
- spriteatlas 白屏的问题_Discuz白屏问题解决思路
- 3 实现模糊遮罩_【Unity游戏客户端框架搭建】六、UI框架之弹窗模糊实现
- 雅虎邮箱发送失败及MIME协议
- CocosCreator之KUOKUO带你做刚体移动与物品拾取到背包
- BlendMask 论文学习
- 【转】plt.plot的颜色
- gephi绘制红楼梦关系图
- python爬虫之——爬取煎蛋网图片
- python pinv和inv总结
热门文章
- 前端生成pdf和word
- Java Development with Ant: 学习ant的好书!
- auto dvr_什么是“广播DVR服务器”,为什么在我的PC上运行它?
- 音乐Npc弹窗 c#
- Bitbucket Cloud recently stopped supporting account passwords for Git authen报错解决
- win10怎么打开无线网络服务器,win10系统打开无线网络服务的操作方法
- Markdown:插入图片和图注
- linux让别人电脑蓝屏,教你如何让别人电脑瞬间蓝屏!只需要两个键,装逼神器,值得拥有...
- HTTP协与Apache服务的搭建
- 算法-点线关系-投影在线段上各点距离最大