最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Scrapy框架爬取網(wǎng)頁(yè)并保存到Mysql的實(shí)現(xiàn)

 更新時(shí)間:2022年07月07日 10:17:50   作者:鄙人阿彬  
本文主要介紹了使用Scrapy框架爬取網(wǎng)頁(yè)并保存到Mysql的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

大家好,這一期阿彬給大家分享Scrapy爬蟲(chóng)框架與本地Mysql的使用。今天阿彬爬取的網(wǎng)頁(yè)是虎撲體育網(wǎng)。

(1)打開(kāi)虎撲體育網(wǎng),分析一下網(wǎng)頁(yè)的數(shù)據(jù),使用xpath定位元素。

 (2)在第一部分析網(wǎng)頁(yè)之后就開(kāi)始創(chuàng)建一個(gè)scrapy爬蟲(chóng)工程,在終端執(zhí)行以下命令:
“scrapy  startproject  huty(注:‘hpty’是爬蟲(chóng)項(xiàng)目名稱)”,得到了下圖所示的工程包:
 

 (3)進(jìn)入到“hpty/hpty/spiders”目錄下創(chuàng)建一個(gè)爬蟲(chóng)文件叫‘“sww”,在終端執(zhí)行以下命令: “scrapy genspider  sww” (4)在前兩步做好之后,對(duì)整個(gè)爬蟲(chóng)工程相關(guān)的爬蟲(chóng)文件進(jìn)行編輯。 1、setting文件的編輯:

把君子協(xié)議原本是True改為False。

  再把這行原本被注釋掉的代碼把它打開(kāi)。

 2、對(duì)item文件進(jìn)行編輯,這個(gè)文件是用來(lái)定義數(shù)據(jù)類(lèi)型,代碼如下:

# 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()
    球隊(duì) = scrapy.Field()
    排名 = scrapy.Field()
    場(chǎng)均得分 = scrapy.Field()
    命中率 = scrapy.Field()
    三分命中率 = scrapy.Field()
    罰球命中率 = scrapy.Field()

3、對(duì)最重要的爬蟲(chóng)文件進(jìn)行編輯(即“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()  # 球員
            球隊(duì) = i.xpath(
                './td[3]/a/text()').extract()  # 球隊(duì)
            場(chǎng)均得分 = 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(球員=球員, 球隊(duì)=球隊(duì), 排名=排名, 場(chǎng)均得分=場(chǎng)均得分, 命中率=命中率, 三分命中率=三分命中率, 罰球命中率=罰球命中率)
            yield data

4、對(duì)pipelines文件進(jìn)行編輯,代碼如下:

# 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]
        球隊(duì) = item["球隊(duì)"][0]
        排名 = item["排名"][0]
        場(chǎng)均得分 = item["場(chǎng)均得分"][0]
        命中率 = item["命中率"]
        三分命中率 = item["三分命中率"][0]
        罰球命中率 = item["罰球命中率"][0]
        # 三分命中率 = item["三分命中率"][0].strip('%')
        # 罰球命中率 = item["罰球命中率"][0].strip('%')
 
        cursor.execute(
            'INSERT INTO nba(球員,球隊(duì),排名,場(chǎng)均得分,命中率,三分命中率,罰球命中率) VALUES (%s,%s,%s,%s,%s,%s,%s)',
            (球員, 球隊(duì), 排名, 場(chǎng)均得分, 命中率, 三分命中率, 罰球命中率)
        )
        # 對(duì)事務(wù)操作進(jìn)行提交
        db.commit()
        # 關(guān)閉游標(biāo)
        cursor.close()
        db.close()
        return item

(5)在scrapy框架設(shè)計(jì)好了之后,先到mysql創(chuàng)建一個(gè)名為“sww”的數(shù)據(jù)庫(kù),在該數(shù)據(jù)庫(kù)下創(chuàng)建名為“nba”的數(shù)據(jù)表,代碼如下: 1、創(chuàng)建數(shù)據(jù)庫(kù)

create database sww;

2、創(chuàng)建數(shù)據(jù)表

create table nba (球員 char(20),球隊(duì) char(10),排名 char(10),場(chǎng)均得分 char(25),命中率 char(20),三分命中率 char(20),罰球命中率 char(20));

3、通過(guò)創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表可以看到該表的結(jié)構(gòu):

 (6)在mysql創(chuàng)建數(shù)據(jù)表之后,再次回到終端,輸入如下命令:“scrapy crawl sww”,得到的結(jié)果

到此這篇關(guān)于使用Scrapy框架爬取網(wǎng)頁(yè)并保存到Mysql的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Scrapy爬取網(wǎng)頁(yè)并保存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Python實(shí)現(xiàn)七大排序算法的代碼實(shí)例

    使用Python實(shí)現(xiàn)七大排序算法的代碼實(shí)例

    這篇文章主要介紹了使用Python實(shí)現(xiàn)七大排序算法的代碼實(shí)例,所謂排序,就是使一串記錄,按照其中的某個(gè)或某些關(guān)鍵字的大小,遞增或遞減的排列起來(lái)的操作,需要的朋友可以參考下
    2023-07-07
  • python 爬取天氣網(wǎng)衛(wèi)星圖片

    python 爬取天氣網(wǎng)衛(wèi)星圖片

    根據(jù)網(wǎng)站URL的規(guī)律編寫(xiě)的一個(gè)爬取天氣網(wǎng)衛(wèi)星圖片的python爬蟲(chóng),使用了requests包,感興趣的朋友可以參考下
    2021-06-06
  • python實(shí)現(xiàn)ipsec開(kāi)權(quán)限實(shí)例

    python實(shí)現(xiàn)ipsec開(kāi)權(quán)限實(shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)ipsec開(kāi)權(quán)限的方法,彌補(bǔ)了windows自帶的命令行工具netsh ipsec static add filter不支持批量添加及添加重復(fù)規(guī)則的不足,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11
  • Python獲取好友地區(qū)分布及好友性別分布情況代碼詳解

    Python獲取好友地區(qū)分布及好友性別分布情況代碼詳解

    利用Python + wxpy 可以快速的查詢自己好友的地區(qū)分布情況,以及好友的性別分布數(shù)量。還可以批量下載好友的頭像,拼接成大圖。感興趣的朋友跟隨小編一起看看吧
    2019-07-07
  • python爬取免費(fèi)代理并驗(yàn)證代理是否可用

    python爬取免費(fèi)代理并驗(yàn)證代理是否可用

    這篇文章主要介紹了python爬取免費(fèi)代理并驗(yàn)證是否可用,通過(guò)本文給大家介紹了在什么情況下會(huì)用到代理并分享腳本的完整代碼,需要的朋友可以參考下
    2022-01-01
  • python time模塊時(shí)間戳 與 結(jié)構(gòu)化時(shí)間詳解

    python time模塊時(shí)間戳 與 結(jié)構(gòu)化時(shí)間詳解

    這篇文章主要介紹了python time模塊 時(shí)間戳 與 結(jié)構(gòu)化時(shí)間的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • pandas常用表連接merge/concat/join/append詳解

    pandas常用表連接merge/concat/join/append詳解

    使用python的pandas庫(kù)可以很容易幫你搞定,而且性能也是很出色的;百萬(wàn)級(jí)的表關(guān)聯(lián),可以秒出,本文給大家分享pandas常用表連接merge/concat/join/append詳解,感興趣的朋友跟隨小編一起看看吧
    2023-02-02
  • Python正確調(diào)用 jar 包加密得到加密值的操作方法

    Python正確調(diào)用 jar 包加密得到加密值的操作方法

    這篇文章主要介紹了Python 正確調(diào)用 jar 包加密得到加密值的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Python利用tkinter和socket實(shí)現(xiàn)端口掃描

    Python利用tkinter和socket實(shí)現(xiàn)端口掃描

    這篇文章主要為大家詳細(xì)介紹了Python如何利用tkinter和socket實(shí)現(xiàn)端口掃描功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-12-12
  • Keras中Conv1D的使用及說(shuō)明

    Keras中Conv1D的使用及說(shuō)明

    這篇文章主要介紹了Keras中Conv1D的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論

馆陶县| 涞水县| 包头市| 横山县| 建平县| 耒阳市| 探索| 酉阳| 巴林左旗| 枣阳市| 饶平县| 施秉县| 乌审旗| 临邑县| 沁水县| 灵川县| 顺平县| 含山县| 宝丰县| 荥经县| 偏关县| 鄄城县| 英山县| 青海省| 新巴尔虎右旗| 永安市| 信阳市| 裕民县| 苏尼特右旗| 海门市| 盖州市| 抚松县| 淅川县| 永胜县| 桑植县| 武川县| 蒲城县| 敦煌市| 宁武县| 叶城县| 紫金县|