第一次請(qǐng)求成功纵揍,第二次變成get請(qǐng)求:
為了找到原因议街,在請(qǐng)求成功時(shí)用日志記錄下request
原因:
使用scrapy.FromRequest()方法時(shí),
如果formdata設(shè)置為{}即沒(méi)有post body吧雹,則會(huì)變?yōu)間et請(qǐng)求涂身,
只有當(dāng)不為空字典時(shí)才會(huì)變?yōu)镻OST請(qǐng)求,因此無(wú)post數(shù)據(jù)時(shí)访得,應(yīng)該使用scrapy.Request(url,method='POST')
https://blog.csdn.net/mrbone11/article/details/100583883
我的奇葩原因:
formdata=self.formdata.update(date=before_day.strftime('%Y-%m-%d'))
測(cè)試:
d = dict(a=1)
c = d.update(b=2)
print(c)
None
d
{'a': 1, 'b': 2}
字典更新后為空悍抑,我給忘了搜骡,就這樣一個(gè)小時(shí)時(shí)間刻苦的排了這樣一個(gè)錯(cuò)
在此佑女,總結(jié)一個(gè)寫(xiě)代碼習(xí)慣:連續(xù)一串邏輯的代碼盡量少些,一來(lái)后期讀起來(lái)費(fèi)勁摸吠,二來(lái)容易出bug。記住一個(gè)原則寸痢,一個(gè)函數(shù)干一件事紊选。