scrapy框架將資料寫入txt出現資料丟失

2021-09-28 20:59:53 字數 1077 閱讀 5864

分析:

獲取網頁中的資料可以成功爬取,但是在寫入txt操作的時候部分資料丟失。可能原因是scrapy框架是非同步爬取資料,所以寫入資料的時候不能完全寫入完整的資料。

解決方法:

一、**

# 開啟爬蟲前呼叫

defopen_spider

(self, spider)

: self.

file

=open

(r'novels/dhzmg.txt'

,'w'

, encoding=

'utf-8'

)# parse()返回值時呼叫,一般在這裡寫入資料

defprocess_item

(self, item, spider)

:try

: res =

dict

(item)

title = res[

'title'

] line = res[

'data'

] self.

file

.write(title+

'\n'

+line+

'\n\n'

)except

:pass

# 關閉爬蟲後呼叫,此處用於關閉檔案連線

defclose_spider

(self, spider)

: self.

file

.close(

)

說明:

- open_spider(): 開啟爬蟲前呼叫,可用於建立連線物件;

- close_spider():關閉爬蟲後呼叫,可以用於關閉檔案連線;

- process_item():此函式用於寫入資料操作,在parse()返回值的時候自動呼叫。

二、配置

使用pipeline.py檔案中的方法時,需要在setting.py更改設定。

item_pipelines =

找到這個配置,取消前面的注釋即可。

使用scrapy框架把資料非同步寫入資料庫

在setting中設定mysql連線資訊 host 101.201.70.139 mysql dbname anttest mysql password myjr678 mysql user root 2 在pipeline中新增mysql非同步連線類from twisted.enterprise ...

使用scrapy框架爬蟲,寫入到資料庫

import scrapy class bossitem scrapy.item define the fields for your item here like name scrapy.field name scrapy.field 對應實體類的屬性 salary scrapy.field co...

爬蟲2 2 scrapy框架 檔案寫入

目錄 pipelines.py 前提回顧,spider.py中 data yield data import json class qsbkpipeline object def init self self.fp open qsbk.json w encoding utf 8 初始化檔案指標 de...