大家好,这一期阿彬给大家分享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相关推荐

  1. 在ubuntu 16.04里使用python—scrapy将爬取到的数据存到mysql数据库中的一些随笔

    一.将爬取的数据保存到mysql数据库的代码(已经能将爬取的数据保存到json文件) (1)编辑Pipeline.py文件 (2)编辑settings.py文件 二.将数据保存至mysql数据库出现的 ...

  2. Beautifulsoup爬取起点中文网 保存到mysql

    一.分析网页 目标网站:起点中文网 目标数据:类别(categoryName)小说书名(bookName) 小说链接(middleUrl)字数(wordsNums) 作者(updateTiems) 最 ...

  3. python爬虫scrapy框架爬取网页数据_Scrapy-Python

    scrapy Scrapy:Python的爬虫框架 实例Demo 抓取:汽车之家.瓜子.链家 等数据信息 版本+环境库 Python2.7 + Scrapy1.12 初窥Scrapy Scrapy是一 ...

  4. 一篇文章让你轻松学会python爬取的数据保存到MySQL中,有案例哦

    文章目录 pymysql 基本使用 八个步骤以及案例分析 一.导入pymysql模块 二.获取到database的链接对象 三.创建数据表的方法 四.获取执行sql语句的光标对象 五.定义要执行的sq ...

  5. python中scrapy可以爬取多少数据_python中scrapy框架爬取携程景点数据

    ------------------------------- [版权申明:本文系作者原创,转载请注明出处] 文章出处:https://blog.csdn.net/sdksdk0/article/de ...

  6. 实现Scrapy框架爬取酷狗音乐Top100名,并存储为TXT,JSON,CSV和Excel格式数据

    前言 实现Scrapy框架爬取网页数据(酷狗音乐Top100名,包括排名信息.歌手信息.歌曲名.歌曲时长) 一.创建项目 在cmd中输入: scrapy startproject kugouScrap ...

  7. python scrapy框架爬取知乎提问信息

    前文介绍了python的scrapy爬虫框架和登录知乎的方法. 这里介绍如何爬取知乎的问题信息,并保存到mysql数据库中. 首先,看一下我要爬取哪些内容: 如下图所示,我要爬取一个问题的6个信息: ...

  8. 使用Scrapy框架爬取慕课网页

    想要完成一个scrapy爬虫框架,那首先得明确自己想要爬取的东西是什么,要选择什么样的爬取方法.接下来我就讲一下我使用Scrapy框架爬取慕课网的一些思路以及过程. 思路:(1)打开慕课网址,并分析网 ...

  9. 基于Scrapy框架爬取豆瓣《复联4》影评,并生成词云

    基于Scrapy框架爬取豆瓣<复联4>影评,并生成词云 1. 介绍及开发环境 2. 爬虫实现 2.1 新建项目 2.2 构造请求 2.3 提取信息 2.4 数据存储 2.4 运行结果 3. ...

  10. 03_使用scrapy框架爬取豆瓣电影TOP250

    前言: 本次项目是使用scrapy框架,爬取豆瓣电影TOP250的相关信息.其中涉及到代理IP,随机UA代理,最后将得到的数据保存到mongoDB中.本次爬取的内容实则不难.主要是熟悉scrapy相关 ...

最新文章

  1. jQuery学习笔记——jQuery选择器详解种类与方法
  2. Spring Countries在Apusic上部署
  3. Vmware虚拟机网络及IP配置
  4. 我的奔腾B50 MT豪华版 典雅灰 – 验车篇
  5. vue 生命周期详解
  6. Thread线程类及多线程
  7. mysql视图实现的_mysql视图是什么?怎么实现?
  8. 用clipboard.js实现纯JS复制文本到剪切板
  9. 连接驱动_在jdbc中完成对于jdbc参数、jdbc变量,加载驱动,创建连接的封装
  10. Java main()方法
  11. import sys; print“%s.%s.%s”% sys.version_info[ :3];
  12. spriteatlas 白屏的问题_Discuz白屏问题解决思路
  13. 3 实现模糊遮罩_【Unity游戏客户端框架搭建】六、UI框架之弹窗模糊实现
  14. 雅虎邮箱发送失败及MIME协议
  15. CocosCreator之KUOKUO带你做刚体移动与物品拾取到背包
  16. BlendMask 论文学习
  17. 【转】plt.plot的颜色
  18. gephi绘制红楼梦关系图
  19. python爬虫之——爬取煎蛋网图片
  20. python pinv和inv总结

热门文章

  1. 前端生成pdf和word
  2. Java Development with Ant: 学习ant的好书!
  3. auto dvr_什么是“广播DVR服务器”,为什么在我的PC上运行它?
  4. 音乐Npc弹窗 c#
  5. Bitbucket Cloud recently stopped supporting account passwords for Git authen报错解决
  6. win10怎么打开无线网络服务器,win10系统打开无线网络服务的操作方法
  7. Markdown:插入图片和图注
  8. linux让别人电脑蓝屏,教你如何让别人电脑瞬间蓝屏!只需要两个键,装逼神器,值得拥有...
  9. HTTP协与Apache服务的搭建
  10. 算法-点线关系-投影在线段上各点距离最大