scrapy常見問題與解決方案

2021-08-15 19:48:22 字數 1899 閱讀 7034

1.輸出不正確、改**結果不變?

其實是因為反覆使用命令

scrapy crawl spider -o 1.json

時候,增加的輸出資料不會覆蓋,而是繼續往後面新增。

2.request不執行

request(url,meta=,callback=self.parse2, dont_filter=true)

dont_filter=true讓allowed_domains失效了。但是改過了還是不行。 

最終結果發現改的檔案和執行的檔案不一樣…… 

為什麼會這樣呢?我中間做了一部分實現了初始功能,就重新命名了備份,然而執行命令列竟然一直在執行備份檔案。

3.在使用 scrapy,pipeline 儲存 json等檔案時,在儲存/輸出中文時,會出現unicode碼

import json

import codecs

class filterwordspipeline(object):

def __init__(self):

# self.file = open('data.json', 'wb')

self.file = codecs.open(

'scraped_data_utf8.json', 'w', encoding='utf-8')

def process_item(self, item, spider):

line = json.dumps(dict(item), ensure_ascii=false) + "\n"

self.file.write(line)

return item

def spider_closed(self, spider):

self.file.close()

item_pipelines =

也就是在pipelines.py中將其改為預設utf-8開啟

4.如何在解析函式之間傳遞值?

一種常見的情況:在parse中給item某些字段提取了值,但是另外一些值需要在parse_item中提取,這時候需要將parse中的item傳到parse_item方法中處理,顯然無法直接給parse_item設定而外引數。 request物件接受乙個meta引數,乙個字典物件,同時response物件有乙個meta屬性可以取到相應request傳過來的meta。所以解決上述問題可以這樣做:

def parse(self, response):

# item = itemclass()

yield request(url, meta=,callback=self.parse_item)

def parse_item(self, response):

item = response.meta['item']

item['field'] = value

yield item

some experiences of usin

5.錯誤提示urlerror:.這個問題我想大家都會碰到的。解決方法是在spider.py檔案中加入兩句話就可以:

from scrapy import optional_features  

optional_features.remove('boto') 

6.from scrapy.spider import basespider 

這句可能會報錯,是因為basespider是老版本的用法,應該使用新版本中的模組。在使用過程發現scrapy還是很智慧型的,會有相關提示應該怎樣替換。正確的匯入方法是:from scrapy.spiders import spider  

7.屬性path

這是很多老教程的用法,現在使用會報錯,應該使用xpath或selector替換

8.一直提示 no module items

後來查詢資料是spiders目錄中的.py檔案不能和專案名同名。改個名字就行了。

layuiAdmin 常見問題與解決方案

由於單頁面版本的視 件和靜態資源模組都是動態載入的,所以可能存在瀏覽器的本地快取問題,事實上我們也考慮到這個,因此,為了避免改動後的檔案未及時生效,你只需在入口頁面 預設為start index.html 中,找到layui.config,修改其version的值即可。version new dat...

常見問題分析解決方案

一 線上問題排查 比如server有程序出現core 方法1 開啟coredump,生成core檔案,方便除錯 也可拉倒線下除錯 方法2 安裝tcpcopy,將線上流量導到線下機器進行進行除錯。方法3 分析是否有多執行緒其中的部分執行緒退出導致其他執行緒出core等等 比如線上流量很少,但是serv...

Git與Github常見問題與解決方案

本文介紹了在github中使用git常見的問題和解決方法,包括ssh配置,回滾,衝突解決等等內容。配置ssh key ssh keygen t rsa b 4096 c username mail.com 遇到提示不斷回車就行 找到生成的key cd ssh找到id rsa.pub這是你的rsa公鑰...