scrapy框架之新增功能

2022-05-27 09:57:10 字數 1635 閱讀 1754

python中的 .join() 函式經常被大家使用到,之前寫**的時候也被用到過,在這裡提出一下:

這個函式展開來寫應該是str.join(item),join函式是乙個字串操作函式

str表示字串(字元),item表示乙個成員,注意括號裡必須只能有乙個成員,比如','.join('a','b')這種寫法是行不通的

舉個例子:

'

,'.join('

abc')

上面**的含義是「將字串abc中的每個成員以字元','分隔開再拼接成乙個字串」,輸出結果為:

'

a,b,c

'

join裡放列表、元組、字典也是可以的

c=';'

.join([a,b,c])

>> print(c)

>> '

a;b;c

'

已經python中的extract(),它的主要作用是將陣列展開,鍵名作為變數名,元素值為變數值,可以說為陣列的操作提供了乙個方便的工具

例:from.html

"

action.php

" method="

post

">

"text

" name="

username

">

"password

" name="

password

">

"submit

">

在action.php中只要使用extract()函式將$_post全域性資料解開:

action.php

<?php

extract($_post);

//相當於$username = $_post['username'];

//$password = $_post['password'];

?>

還有當時在寫scrapy框架看**時偶然看到的乙個寫法:

sentences=[y for x in sentences for y in x]

之前沒看到過,一頭霧水,經過查資料後發現是這樣去理解的:

def f(z):

for y in z:

for x in y:

yield x

英文描述:[item for sublist in list for item in sublist]

也就是:子列表中專案的子列表專案

效果展示:

> # flatten a list using a listcomp with two 'for'

> vec = [[1,2,3], [4,5,6], [7,8,9]]

> [num for elem in vec for num in elem]

[1, 2, 3, 4, 5, 6, 7, 8, 9]

作用:將列表展平

當然還有更高階的用法:

[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]

[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

它等價於:

scrapy 框架之post請求

通常 通過 實現對某些表單字段 如資料或是登入介面中的認證令牌等 的預填充。使用scrapy抓取網頁時,如果想要預填充或重寫像使用者名稱 使用者密碼這些表單字段,可以使用formrequest,可以使用 formrequest.from response 方法實現。formrequest類 引數 同...

Python之scrapy框架爬蟲

scrapy命令詳解 可能是如今最全最簡單的scrapy命令解釋 明天上班,又要爬 現在每天做的工作有50 的時間爬 40 的時間清理資料,10 寫報告。若想自學資料分析,側重點很重要,我當初把大部分經歷放在了python的pandas numpymatplotlib上面,其他時間一部分放在sql身...

scrapy爬蟲框架之ImagePipeline

item pipeline item在spider中獲取後,將傳送到item pipeline中,執行對item的後續處理。每個item pipeline元件實現了簡單方法,它們接收item並執行一些操作,決定丟棄item還是讓其通過pipeline。item pipeline的作用 當然,你也可以...