欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解讀Scrapy回調(diào)函數(shù)callback傳遞參數(shù)的方式

 更新時間:2022年12月19日 10:32:01   作者:bladestone  
這篇文章主要介紹了解讀Scrapy回調(diào)函數(shù)callback傳遞參數(shù)的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Scrapy回調(diào)函數(shù)

回調(diào)方法示例:

yield Request(url=self.base_url + 'QueryInfo', headers=self.request_headers, method="POST", body=json.dumps(request_params), callback=self.page_query_schools, cb_kwargs=add_params)

callback對應(yīng)的是page_query_school()即為回調(diào)的方法。

傳遞參數(shù)方式

如何向回調(diào)方法中傳遞參數(shù)呢?

在scrapy1.7之后,是基于cb_kwargs方式傳遞dict類型,可以在回調(diào)方式中直接訪問對應(yīng)的參數(shù)值。

add_params = {}
add_params['province_code'] = province_code
add_params['province_name'] = name
yield Request(url=self.base_url + 'QueryInfo', headers=self.request_headers, method="POST", body=json.dumps(request_params), callback=self.page_query_schools, cb_kwargs=add_params)
? ? ? ? ?
def page_query_schools(self, response, province_code, province_name): ? ? ? ?
? ? ?# logic definition?

從上述方法中可知, add_params初始化為dict, 放入province_code/province_name兩個值。

在page_query_schools()方法中,其中的key值直接以參數(shù)傳入方法: province_code/province_name.

注意事項

錯誤的用法:

add_params = {}
add_params['data_item']['province_code'] = province_code
add_params['data_item']['province_name'] = name
yield Request(url=self.base_url + 'QueryInfo', headers=self.request_headers, method="POST", body=json.dumps(request_params), callback=self.page_query_schools, cb_kwargs=dict(data_hsh=add_params))
? ? ? ??
def page_query_schools(self, response, data_hsh): ? ? ? ?
? ? # logic definition?

這種用法的錯誤是:data_hsh傳遞是引用,在循環(huán)訪問中,data_hsh是指向相同的結(jié)果值,造成變量的引用有誤,與預(yù)期不符。

正確的做法:cb_kwargs傳遞直接變量屬性值,不要使用復(fù)雜的數(shù)據(jù)結(jié)構(gòu),可以做到不同的屬性值

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas中DataFrame數(shù)據(jù)合并連接(merge、join、concat)

    pandas中DataFrame數(shù)據(jù)合并連接(merge、join、concat)

    這篇文章主要給大家介紹了關(guān)于pandas中DataFrame 數(shù)據(jù)合并連接(merge、join、concat)的相關(guān)資料,文中介紹的非常詳細,需要的朋友可以參考下
    2021-05-05
  • Python數(shù)據(jù)分析之使用scikit-learn構(gòu)建模型

    Python數(shù)據(jù)分析之使用scikit-learn構(gòu)建模型

    這篇文章主要介紹了Python數(shù)據(jù)分析之使用scikit-learn構(gòu)建模型,sklearn提供了model_selection模型選擇模塊、preprocessing數(shù)據(jù)預(yù)處理模塊、decompisition特征分解模塊,更多相關(guān)內(nèi)容需要朋友可以參考下面文章內(nèi)容
    2022-08-08
  • Python利用tkinter和socket實現(xiàn)端口掃描

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

    這篇文章主要為大家詳細介紹了Python如何利用tkinter和socket實現(xiàn)端口掃描功能,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下
    2022-12-12
  • python引入其他py文件或模塊

    python引入其他py文件或模塊

    本文主要介紹了python引入其他py文件或模塊,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python3 實現(xiàn)減少可調(diào)用對象的參數(shù)個數(shù)

    Python3 實現(xiàn)減少可調(diào)用對象的參數(shù)個數(shù)

    今天小編就為大家分享一篇Python3 實現(xiàn)減少可調(diào)用對象的參數(shù)個數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 使用Qt?QSS繪制簡單美化界面功能

    使用Qt?QSS繪制簡單美化界面功能

    這篇文章主要介紹了使用Qt?QSS繪制簡單美化界面,本文以繪制登錄界面為例,創(chuàng)建一個繼承自Qwidget的設(shè)計師界面類,為了使得控件排放整齊有序,可以使用layout布局進行輔助,感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • pyecharts繪制中國2020肺炎疫情地圖的實例代碼

    pyecharts繪制中國2020肺炎疫情地圖的實例代碼

    在本篇文章里小編給大家整理的是關(guān)于pyecharts繪制中國2020肺炎疫情地圖的實例代碼內(nèi)容,有興趣的朋友們可以測試下。
    2020-02-02
  • python實現(xiàn)FTP服務(wù)器服務(wù)的方法

    python實現(xiàn)FTP服務(wù)器服務(wù)的方法

    本篇文章主要介紹了python實現(xiàn)FTP服務(wù)器的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 詳解Python中的裝飾器、閉包和functools的教程

    詳解Python中的裝飾器、閉包和functools的教程

    這篇文章主要介紹了詳解Python中的裝飾器、閉包和functools的教程,作者還給出了相關(guān)的Flask框架下的應(yīng)用實例,需要的朋友可以參考下
    2015-04-04
  • 利用Python實現(xiàn)一個簡單的Web匯率計算器

    利用Python實現(xiàn)一個簡單的Web匯率計算器

    Dash?是一個用于構(gòu)建基于?Web?的應(yīng)用程序的?Python?庫,無需?JavaScript?。本文將利用Dash編寫一個簡單的Web匯率計算器,感興趣的可以了解一下
    2022-08-08

最新評論