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