Scrapy模擬登錄趕集網(wǎng)的實(shí)現(xiàn)代碼
1.打開(kāi)趕集網(wǎng)登錄界面,先模擬登錄并抓包,獲得post請(qǐng)求的request參數(shù)

2. 我們只需構(gòu)造出上面的參數(shù)傳入formdata即可
參數(shù)分析:
setcookie:為自動(dòng)登錄所傳的值,不勾選時(shí)默認(rèn)為0。
__hash__值的分析:只需要查看response網(wǎng)頁(yè)源代碼即可 ,然后用正則表達(dá)式提取。
3.代碼實(shí)現(xiàn)
1.workon到自己的虛擬環(huán)境 cmd切換到項(xiàng)目目錄,輸入scrapy startproject ganjiwangdenglu,然后就可以用pycharm打開(kāi)該目錄啦。
2.在pycharm terminal中輸入scrapy ganji ganjicom 創(chuàng)建地址,如下為項(xiàng)目目錄

3. 代碼詳情
import scrapy
import re
class GanjiSpider(scrapy.Spider):
name = 'ganji'
allowed_domains = ['ganji.com']
start_urls = ['https://passport.ganji.com/login.php']
def parse(self, response):
hash_code = re.search(r'"__hash__":"(.+)"}', response.text).group(1) # 正則獲取哈希
img_url = 'https://passport.ganji.com/ajax.php?dir=captcha&module=login_captcha' # 驗(yàn)證碼url
yield scrapy.Request(img_url, callback=self.do_formdata, meta={'hash_code': hash_code}) # 發(fā)送獲取驗(yàn)證碼請(qǐng)求并保存驗(yàn)證碼到本地
def do_formdata(self, response):
with open('yzm.jpg', 'wb') as f:
f.write(response.body)
# 驗(yàn)證碼三種方案:1,保存下來(lái)手動(dòng)輸入,2,云打碼,3 tesseract模塊,在這里我們手動(dòng)輸入
code = input('請(qǐng)輸入驗(yàn)證碼:')
# 創(chuàng)建表單
formdata = {
'username': 'your_username',
'password': 'your_password',
'setcookie': '14',
'checkCode': code,
'next': '',
'source': 'passport',
'__hash__': response.request.meta['hash_code'] # meta是在respose.request中
}
login_url = "https://passport.ganji.com/login.php"
yield scrapy.FormRequest(url=login_url, formdata=formdata, callback=self.after_login) # 發(fā)送登錄請(qǐng)求
def after_login(self, response):
print(response.text)
4.終端輸入scrapy carwl ganji 即可大功告成 。
返回來(lái)的json字符串解析如下:

注:setting中的設(shè)置不在贅述。
總結(jié)
到此這篇關(guān)于Scrapy模擬登錄趕集網(wǎng)的文章就介紹到這了,更多相關(guān)Scrapy登錄趕集網(wǎng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類的例子
今天小編就為大家分享一篇python設(shè)計(jì)tcp數(shù)據(jù)包協(xié)議類的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
python實(shí)現(xiàn)字母閃爍效果的示例代碼
本文主要介紹了python實(shí)現(xiàn)字母閃爍效果的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Python3自動(dòng)簽到 定時(shí)任務(wù) 判斷節(jié)假日的實(shí)例
今天小編就為大家分享一篇Python3自動(dòng)簽到 定時(shí)任務(wù) 判斷節(jié)假日的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
使用Django清空數(shù)據(jù)庫(kù)并重新生成
這篇文章主要介紹了使用Django清空數(shù)據(jù)庫(kù)并重新生成,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04

