爬蟲 使用ItemLoader維護item

2022-08-17 09:45:21 字數 1521 閱讀 1037

在item的filed()中設定引數函式,可以用來預處理item欄位的資料,另一方面也方便程式**的管理和重用

item中

from scrapy.loader.processors import mapcompose, takefirst

import scrapy

from scrapy.loader import itemloader

def add(value):

# 在myitem中呼叫的函式,對輸入的資料進行指定的處理後返回值

return value + 'hello-world'

def fun(value):

return value + do_something

class myitemloader(itemloader):

# 自定義itemloader類,繼承自itemloader,實現預設提取第乙個值,用來自動實現output_process=takefirst()

default_output_processor = takefirst()

class myitem(scrapy.item):

'''# input_process=mapcompose(add)可以使用外接函式add對傳入的item欄位進行預處理

# mapcompose()裡的引數可以是任意函式,例子中add是外接函式,也可以是lambda匿名函式

# output_process=takefirst()

# takefirst()只提取第乙個值

當自定義了itemloader,即myitemloader類後,output_process就可以省略了

'''item = scrapy.field(

input_process=mapcompose(add),

#output_process=takefirst()

)spider中

from scrapy.loader import itemloader

from spider_path.items import myitem

from ... import myitemloader # 匯入自定義的itermloader

# 通過itemloader載入myitem中的字段, 這裡itemloader被重寫成了myitermloader

item_loader= myitemloasder(item=myitem(), response=response)

# 通過css,xpath,value提取

item_loader.add_css('myitem中的字段','css選擇器提取路徑')

item_loader.add_xpath('myitem中的字段','xpath選擇器提取路徑')

item_loader.add_value('myitem中的字段',獲取的值)

my_item = item_loader.load_item()

yield my_item

爬蟲 Jupyter Notebook使用

jupyter notebook是基於網頁的用於互動計算的應用程式。其可被應用於全過程計算 開發 文件編寫 執行 和展示結果。jupyter notebook官方介紹 簡而言之,jupyter notebook是以網頁的形式開啟,可以在網頁頁面中直接編寫 和執行 的執行結果也會直接在 塊下顯示。如在...

python爬蟲免登入 爬蟲使用cookie免登陸

由於前程無憂上崗位投遞記錄只保留兩個月,想記錄下。程式 放在github 對於怎麼獲取登陸後的頁面,有兩種思路使用賬號,密碼登陸,如果該 登陸系統簡單的話,沒有驗證碼啥的,有驗證碼的話,可以使用圖形識別庫 使用cookie繞過登陸頁面cookie cookie 複數形態cookies 中文名稱為 小...

C 使用HtmlAgilityPack爬蟲例項

使用htmlagilitypack類庫解析html非常方便,網上的資料有很多,可以自行搜尋了解 下面上乙個非常簡單的小例子 要爬取的資訊如下 首先要引用htmlagilitypack.dll檔案 上 internal void run httptool類 初始化請求 請求頭資訊可以按自己需求增加 p...