摘要:接下來(lái)將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中在項(xiàng)目路徑下創(chuàng)建一個(gè)目錄名字叫做以便區(qū)分創(chuàng)建將其他目錄的文件拷貝一份放入該目錄然后可以正式開(kāi)始吧爬取的數(shù)據(jù)如何存放在數(shù)據(jù)庫(kù)中了客觀代碼來(lái)了打開(kāi)文件在最下面添加數(shù)據(jù)庫(kù)地址數(shù)據(jù)庫(kù)用戶名數(shù)據(jù)庫(kù)密碼數(shù)據(jù)庫(kù)端口數(shù)據(jù)庫(kù)中庫(kù)由于
接下來(lái)將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中
在項(xiàng)目路徑下創(chuàng)建一個(gè)目錄名字叫做:mysqlpipelines以便區(qū)分
創(chuàng)建將其他目錄的__init__.py文件拷貝一份放入該目錄
然后可以正式開(kāi)始吧爬取的數(shù)據(jù)如何存放在數(shù)據(jù)庫(kù)中了,客觀代碼來(lái)了
打開(kāi)settings.py文件在最下面添加 # configure MySQL MYSQL_HOSTS = "127.0.0.1"#數(shù)據(jù)庫(kù)地址 MYSQL_USER = "root"#數(shù)據(jù)庫(kù)用戶名 MYSQL_PASSWORD = "root"#數(shù)據(jù)庫(kù)密碼 MYSQL_PORT = "3306"#數(shù)據(jù)庫(kù)端口 MYSQL_DB = "test"#數(shù)據(jù)庫(kù)中test庫(kù)
由于我的數(shù)據(jù)庫(kù)是本地的那就所以直接醬紫
之后呢,在mysqlpipelines目錄中新建一個(gè)sql.py
代碼如下
import mysql.connector from dingdian import settings # 引用配置文件 MYSQL_HOSTS = settings.MYSQL_HOSTS MYSQL_USER = settings.MYSQL_USER MYSQL_PASSWORD = settings.MYSQL_PASSWORD MYSQL_PORT = settings.MYSQL_PORT MYSQL_DB = settings.MYSQL_DB # 初始化MYSQL游標(biāo)操作 cnx = mysql.connector.connect(user=MYSQL_USER, password=MYSQL_PASSWORD, host=MYSQL_HOSTS, database=MYSQL_DB) cur = cnx.cursor(buffered=True) # 定義一個(gè)sql類(lèi) class Sql: # @classmethod 做類(lèi)修飾,相當(dāng)于靜態(tài)類(lèi) # 定義函數(shù),將函數(shù)中的變量保存到數(shù)據(jù)庫(kù)中 @classmethod def insert_dd_name(cls, video_name, video_time, video_imgurl, video_url): sql = "INSERT INTO video_info(video_name, video_time, video_imgurl, video_url) VALUES(%(video_name)s, %(video_time)s, %(video_imgurl)s, %(video_url)s)" value = {"video_name" : video_name, "video_time": video_time , "video_imgurl": video_imgurl , "video_url": video_url } print(sql, value) cur.execute(sql, value) cnx.commit() pass # 查找是否有重復(fù)的小說(shuō)編號(hào)有則返回1 沒(méi)有則返回0 @classmethod def select_name(cls, video_name): sql = "SELECT EXISTS(SELECT 1 FROM video_info WHERE video_name= %(video_name)s)" value = { "video_name": video_name } cur.execute(sql, value) return cur.fetchall()[0]
上面代碼中import mysql.connector可能會(huì)報(bào)錯(cuò),如果報(bào)錯(cuò)的話就去百度python如何下載數(shù)據(jù)庫(kù)連接包吧
然后繼續(xù)在mysqlpipelines創(chuàng)建一個(gè)pipelines.py
代碼如下:
from .sql import Sql from AiQuer.items import AiquerItem class DingdianPipeline(object): def process_item(self, item, spider): if isinstance(item, AiquerItem): video_name= item["video_name"] ret = Sql.select_name(video_name) if ret[0] == 1: print(u"已存在") else: video_name= item["video_name"] video_time= item["video_time"] video_imgurl= item["video_imgurl"] video_url= item["video_url"] Sql.insert_dd_name(video_name, video_time, video_imgurl, video_url) print(u"開(kāi)始存視頻信息") return item
最后在settings.py里面去注冊(cè)一下DingdianPipeline
找到下面這一段
# Configure item pipelines # See http://scrapy.readthedocs.org/en/latest/topics/item-pipeline.html ITEM_PIPELINES = { "AiQuer.mysqlpipelines.pipelines.AiquerPipeline": 300, }
注:我在這里面沒(méi)有建立數(shù)據(jù)庫(kù)表請(qǐng)同學(xué)們自己去創(chuàng)建表吧
啟用后你會(huì)發(fā)現(xiàn)數(shù)據(jù)庫(kù)有你選擇用戶的所有視頻,哈哈哈~
python的就到這兒了.如果要詳細(xì)了解進(jìn)階的話就看python的scrapy文檔吧!
附上鏈接Scrapy入門(mén)教程.拜拜~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41215.html
摘要:如果想先學(xué)習(xí)的話推薦看下基礎(chǔ)教學(xué)菜鳥(niǎo)教程這個(gè)網(wǎng)站的教程里面的內(nèi)容還是挺不錯(cuò)的非常適合小白學(xué)習(xí)好了廢話不多說(shuō)開(kāi)始學(xué)習(xí)如何安裝吧安裝我上篇小白爬蟲(chóng)篇簡(jiǎn)介下面的鏈接安裝包后在或者在中輸入命令過(guò)程中可能會(huì)問(wèn)你是否安裝其他擴(kuò)展包選按回車(chē)就好了安裝完成 如果想先學(xué)習(xí)python的話推薦看下Python基礎(chǔ)教學(xué)|菜鳥(niǎo)教程這個(gè)網(wǎng)站的教程,里面的內(nèi)容還是挺不錯(cuò)的非常適合小白學(xué)習(xí)好了廢話不多說(shuō)開(kāi)始學(xué)習(xí)如何...
摘要:沒(méi)有做具體數(shù)據(jù)處理了直接把他們保存為數(shù)據(jù)了很長(zhǎng)很長(zhǎng)一段眼花下一篇是如何去保存在數(shù)據(jù)庫(kù)中 在上篇中沒(méi)有說(shuō)到啟動(dòng)如何去啟動(dòng),scrapy是使用cmd命令行去啟動(dòng)的咱們用scrapy的cmdline去啟動(dòng)命名point.py # 導(dǎo)入cmdline 中的execute用來(lái)執(zhí)行cmd命令 from scrapy.cmdline import execute # 執(zhí)行cmd命令參數(shù)為[ scra...
摘要:創(chuàng)建爬蟲(chóng)項(xiàng)目我創(chuàng)建的項(xiàng)目名稱(chēng)為用打開(kāi)項(xiàng)目可以看到目錄結(jié)構(gòu)如下根目錄有個(gè)是他的配置文件用來(lái)存放你的爬蟲(chóng)文件我就不做解釋了存放集合中間件用來(lái)自定義插件在這里咱們用不到這玩意用來(lái)存儲(chǔ)數(shù)據(jù)這個(gè)還用解釋嗎你可以在中看到這個(gè)他們的具體介紹就去看入門(mén)到奔 創(chuàng)建爬蟲(chóng)項(xiàng)目 scrapy startproject (projectName) 我創(chuàng)建的項(xiàng)目名稱(chēng)為AIQuery scrapy startpro...
摘要:基于的樹(shù)狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹(shù)中找尋節(jié)點(diǎn)的能力。起初的提出的初衷是將其作為一個(gè)通用的介于與間的語(yǔ)法模型。 在你的spiders目錄下創(chuàng)建自己第一個(gè)爬蟲(chóng)項(xiàng)目,我我這兒命名為AiquerSpider.py然后編輯文件 # !/usr/bin/python # -*- coding: UTF-8 -*- import scrapy from scrapy.http import Reque...
閱讀 3614·2021-11-15 11:38
閱讀 2810·2021-11-11 16:55
閱讀 2562·2021-11-08 13:22
閱讀 2638·2021-11-02 14:45
閱讀 1321·2021-09-28 09:35
閱讀 2596·2021-09-10 10:50
閱讀 471·2019-08-30 15:44
閱讀 2787·2019-08-29 17:06