大家好,这一期阿彬给大家分享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.html
 
import scrapy
 
 
class 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 HptyItem
 
 
class 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 pymysql
 
 
class 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的实现的文章就介绍到这了,更多相关Scrapy爬取网页并保存内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

使用Scrapy框架爬取网页并保存到Mysql的实现的更多相关文章

  1. Python中使用tkFileDialog实现文件选择、保存和路径选择

    这篇文章主要介绍了Python中使用tkFileDialog实现文件选择、保存和路径选择,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. 基于Python实现批量保存视频到本地

    我们刷视频时常常会想把精彩的视频保存到本地,如果少数的还行,如果有很多的话一个个保存太麻烦了。本文教你如何用Python实现视频批量保存到本地,需要的可以参考一下

  3. Android保存多张图片到本地的实现方法

    这篇文章主要给大家介绍了关于Android保存多张图片到本地的实现方法,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

  4. 使用数据库保存session的方法

    php的session默认是以文件方式保存在服务器端,并且在客户端使用cookie保存变量,这就会出现一个问题,当一个用户由于某种安全原因关闭了浏览器的cookie,程序中的session相关操作将无法执行。因此,如果能以数据库保存session数据,将不受客户端设置的限制,并且在性能和扩展性等方面有一个飞跃。程序中使用关键函数是session_set_save_handler,同时要将php.ini里的session.save_handler=files改为user。>完成以上步骤后,在程序中使用req

  5. PHP中在数据库中保存Checkbox数据(2)

    其中"get_checkbox_labels"查询表const_skills并且返回一个对象数组,每一个对象有一个id值和相应的技能名称。我们传送这个数组和其它一些参数给"make_checkbox_html",这个函数将返回一个字串,用来生成checkbox的html代码。现在我们把这个字串插入html文件来生成我们需要的包含有各种技能选择的表单。注意我并没有传送变量$checked给"make_checkbox_html",这个参数是一个我们要显示的checked的对象数组。

  6. Java实现文件上传保存

    这篇文章主要为大家详细介绍了Java实现文件上传保存,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  7. Python实现批量文件分类保存的示例代码

    当我们电脑里面的文本或者或者文件夹太多了,有时候想找到自己想要的文件,只能通过去搜索文件名,这样还是很麻烦的。本文将通过Python语言实现文件批量分类保存,需要的可以参考一下

  8. 使用Scrapy框架爬取网页并保存到Mysql的实现

    本文主要介绍了使用Scrapy框架爬取网页并保存到Mysql的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  9. iOS 沙盒图片保存读取实例

    下面小编就为大家分享一篇iOS 沙盒图片保存读取实例,具有很的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  10. Python实现npy/mat文件的保存与读取

    除了常用的csv文件和excel文件之外,我们还可以通过Python把数据保存文npy文件格式和mat文件格式。本文为大家展示了实现npy文件与mat文件的保存与读取的示例代码,需要的可以参考一下

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部