Request 部分源碼: class Request(object_ref): def __init__(self, url, callback=None, method='GET', headers=None, body=None, cookies=None, meta=None, encoding='utf-8', priority=0, dont_filter=False, errback=None): self._encoding = encoding # this one has to be set first self.method = str(method).upper() self._set_url(url) self._set_body(body) assert isinstance(priority, int), "Request priority not an integer: %r" % priority self.priority = priority assert callback or not errback, "Cannot use errback without a callback" self.callback = callback self.errback = errback self.cookies = cookies or {} self.headers = Headers(headers or {}, encoding=encoding) self.dont_filter = dont_filter self._meta = dict(meta) if meta else None @property def meta(self): if self._meta is None: self._meta = {} return self._meta url: 就是需要請求,并進(jìn)行下一步處理的url callback: 指定該請求返回的Response,由那個函數(shù)來處理破镰。 method: 請求一般不需要指定繁疤,默認(rèn)GET方法云芦,可設(shè)置為"GET", "POST", "PUT"等,且保證字符串大寫 headers: 請求頭 cookies: cookies,模擬用戶登錄需要指定用戶的cookies,字典dict型 meta: 比較常用,在不同的請求之間傳遞數(shù)據(jù)使用的。字典dict型 request_with_cookies = Request( url="http://www.example.com", cookies={'currency': 'USD', 'country': 'UY'}, meta={'dont_merge_cookies': True} ) encoding: 編碼類型,使用默認(rèn)的 'utf-8' 就行绒净。 dont_filter: 表明該請求不由調(diào)度器過濾。這是當(dāng)你想使用多次執(zhí)行相同的請求,忽略重復(fù)的過濾器偿衰。默認(rèn)為False挂疆。 errback: 指定錯誤處理函數(shù) ?如果希望程序執(zhí)行一開始就發(fā)送POST請求,可以重寫Spider類的start_requests(self) 方法下翎,并且不再調(diào)用start_urls里的url缤言。 class mySpider(scrapy.Spider): name = 'myspider' allow_domeas = ['renren.com'] start_urls = ["http://www.renren.com/PLogin.do"] def start_requests(self): # FormRequest 是Scrapy發(fā)送POST請求的方法 for url in self.start_urls: yield scrapy.FormRequest( url = url, formdata = {"email" : "mr_mao_hacker@163.com", "password" : "axxxxxxxe"}, callback = self.parse_page ) def parse_page(self, response): """ 請求成的回調(diào)函數(shù) """ pass Response class Response(object_ref): def __init__(self, url, status=200, headers=None, body='', flags=None, request=None): self.headers = Headers(headers or {}) self.status = int(status) self._set_body(body) self._set_url(url) self.request = request self.flags = [] if flags is None else list(flags) @property def meta(self): try: return self.request.meta except AttributeError: raise AttributeError("Response.meta not available, this response " \ "is not tied to any request") status: 響應(yīng)碼 body: 響應(yīng)體 url:響應(yīng)url self.request (request對象) self.headers (響應(yīng)頭)
2019-01-06
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乒裆,“玉大人套利,你說我怎么就攤上這事『姿#” “怎么了肉迫?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長稿黄。 經(jīng)常有香客問我喊衫,道長,這世上最難降的妖魔是什么杆怕? 我笑而不...
- 正文 為了忘掉前任族购,我火速辦了婚禮,結(jié)果婚禮上陵珍,老公的妹妹穿的比我還像新娘寝杖。我一直安慰自己,他們只是感情好互纯,可當(dāng)我...
- 文/花漫 我一把揭開白布瑟幕。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪只盹。 梳的紋絲不亂的頭發(fā)上辣往,一...
- 文/蒼蘭香墨 我猛地睜開眼肛冶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了扯键?” 一聲冷哼從身側(cè)響起睦袖,我...
- 正文 年R本政府宣布训柴,位于F島的核電站哑舒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏幻馁。R本人自食惡果不足惜洗鸵,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仗嗦。 院中可真熱鬧膘滨,春花似錦、人聲如沸儒将。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贡翘,卻和暖如春蹈矮,著一層夾襖步出監(jiān)牢的瞬間泛鸟,已是汗流浹背闸翅。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- scrapy學(xué)習(xí)筆記(有示例版) 我的博客 scrapy學(xué)習(xí)筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
- Python版本管理:pyenv和pyenv-virtualenvScrapy爬蟲入門教程一 安裝和基本使用Scr...
- 這周有寫懈怠妄辩。 元組和列表的異同: 不同:元組用小括號,列表用中括號 每個元組在小括號之間至少要包含一個逗號,即使...
- 時間:30 分鐘困難:整塊看書時間不夠收獲:成人學(xué)習(xí)理論:智慧的核心是如何處理經(jīng)驗致盟。能夠從自己和他人的錯誤中學(xué)習(xí),...
- 今天開始了恩瑾自主學(xué)習(xí)的第一天馏锡,讓恩瑾學(xué)會做學(xué)習(xí)計劃雷蹂,希望她學(xué)會自發(fā)主動的學(xué)習(xí)”溃回家以后恩瑾馬上到達(dá)自己做...