久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

scrapy數據存儲在mysql數據庫的方式是什么

137次閱讀
沒有評論

共計 1857 個字符,預計需要花費 5 分鐘才能閱讀完成。

scrapy 數據存儲在 mysql 數據庫的方式是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

這篇文章主要介紹了 scrapy 數據存儲在 mysql 數據庫的兩種方式 (同步和異步),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著丸趣 TV 小編來一起學習學習吧。

方法一:同步操作

1.pipelines.py 文件 (處理數據的 python 文件)

import pymysqlclass LvyouPipeline(object):def __init__(self):# connection databaseself.connect = pymysql.connect(host= XXX , user= root , passwd= XXX , db= scrapy_test) # 后面三個依次是數據庫連接名、數據庫密碼、數據庫名稱# get cursorself.cursor = self.connect.cursor()print( 連接數據庫成功)def process_item(self, item, spider):# sql 語句 insert_sql = insert into lvyou(name1, address, grade, score, price) VALUES (%s,%s,%s,%s,%s) # 執行插入數據到數據庫操作 self.cursor.execute(insert_sql, (item[ Name], item[Address], item[Grade], item[Score],item[Price]))# 提交,不進行提交無法保存到數據庫 self.connect.commit()def close_spider(self, spider):# 關閉游標和連接 self.cursor.close()self.connect.close()

2. 配置文件中

方式二 異步儲存

pipelines.py 文件:

通過 twisted 實現數據庫異步插入,twisted 模塊提供了 twisted.enterprise.adbapi

1. 導入 adbapi。

2. 生成數據庫連接池。

3. 執行數據數據庫插入操作。

4. 打印錯誤信息,并排錯。

import pymysqlfrom twisted.enterprise import adbapi# 異步更新操作 class LvyouPipeline(object):def __init__(self, dbpool):self.dbpool = dbpool@classmethoddef from_settings(cls, settings): # 函數名固定,會被 scrapy 調用,直接可用 settings 的值 數據庫建立連接:param settings: 配置參數:return: 實例化參數 adbparams = dict(host=settings[ MYSQL_HOST],db=settings[MYSQL_DBNAME],user=settings[MYSQL_USER],password=settings[MYSQL_PASSWORD],cursor >

注意:

1、python 3.x 不再支持 MySQLdb,它在 py3 的替代品是:import pymysql。

2、報錯 pymysql.err.ProgrammingError: (1064, ……

原因:當 item[quotes] 里面含有引號時,可能會報上述錯誤。

解決辦法:使用 pymysql.escape_string() 方法。

例如:

sql = INSERT INTO video_info(video_id, title) VALUES(%s , %s) %(video_info[ id],pymysql.escape_string(video_info[ title]))

3、存在中文的時候,連接需要添加 charset= utf8,否則中文顯示亂碼。

4、每執行一次爬蟲,就會將數據追加到數據庫中,如果多次的測試爬蟲,就會導致相同的數據不斷累積,怎么實現增量爬取?

scrapy-deltafetch

scrapy-crawl-once(與 1 不同的是存儲的數據庫不同)

scrapy-redis

scrapy-redis-bloomfilter(3 的增強版,存儲更多的 url, 查詢更快)

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-17發表,共計1857字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 诸城市| 济宁市| 兰西县| 怀安县| 西安市| 民乐县| 潞城市| 芷江| 宕昌县| 揭东县| 临海市| 昌都县| 龙州县| 哈尔滨市| 榕江县| 临猗县| 垫江县| 瑞金市| 丹巴县| 诏安县| 莫力| 梨树县| 蚌埠市| 东明县| 水城县| 皋兰县| 门源| 察哈| 崇州市| 永城市| 田林县| 武威市| 汝城县| 揭东县| 绍兴市| 寿阳县| 曲麻莱县| 井研县| 蕉岭县| 阜宁县| 那坡县|