W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
蜘蛛可以接受改變其行為的論據(jù)。spider參數(shù)的一些常見(jiàn)用途是定義起始URL或?qū)⑴佬邢拗圃谡军c(diǎn)的某些部分,但它們可以用于配置spider的任何功能。
蜘蛛?yún)?shù)通過(guò) ?crawl
? 命令使用 -a 選項(xiàng)。例如::
scrapy crawl myspider -a category=electronics
蜘蛛可以在它們的 __init__ 方法::
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
def __init__(self, category=None, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
self.start_urls = [f'http://www.example.com/categories/{category}']
# ...
默認(rèn)值 __init__ 方法將獲取任何spider參數(shù),并將其作為屬性復(fù)制到spider。上面的例子也可以寫(xiě)如下:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
def start_requests(self):
yield scrapy.Request(f'http://www.example.com/categories/{self.category}')
請(qǐng)記住,spider參數(shù)只是字符串。蜘蛛本身不會(huì)進(jìn)行任何解析。如果你要設(shè)置 start_urls 屬性來(lái)自命令行,您必須使用類(lèi)似的 ?ast.literal_eval()
? 或 ?json.loads()
? 然后將其設(shè)置為屬性。否則,您將在 ?start_urls
? 字符串(一個(gè)非常常見(jiàn)的Python陷阱),導(dǎo)致每個(gè)字符被視為一個(gè)單獨(dú)的URL。
有效的用例是設(shè)置 ?HttpAuthMiddleware
? 或用戶(hù)代理 ?UserAgentMiddleware
? ::
scrapy crawl myspider -a http_user=myuser -a http_pass=mypassword -a user_agent=mybot
蜘蛛?yún)?shù)也可以通過(guò)scrapyD傳遞 ?schedule.json
? 應(yīng)用程序編程接口。見(jiàn) Scrapyd documentation .
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: