婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Scrapy實(shí)現(xiàn)模擬登錄的示例代碼

Scrapy實(shí)現(xiàn)模擬登錄的示例代碼

熱門標(biāo)簽:騰訊地圖標(biāo)注有什么版本 千呼ai電話機(jī)器人免費(fèi) 外呼系統(tǒng)前面有錄音播放嗎 深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商 高德地圖標(biāo)注字母 鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商 申請辦個400電話號碼 柳州正規(guī)電銷機(jī)器人收費(fèi) 400電話辦理費(fèi)用收費(fèi)

為什么要模擬登錄

有些網(wǎng)站是需要登錄之后才能訪問的,即便是同一個網(wǎng)站,在用戶登錄前后頁面所展示的內(nèi)容也可能會大不相同,例如,未登錄時訪問Github首頁將會是以下的注冊頁面:

然而,登錄后訪問Github首頁將包含如下頁面內(nèi)容:

如果我們要爬取的是一些需要登錄之后才能訪問的頁面數(shù)據(jù)就需要模擬登錄了。通常我們都是利用的 Cookies 來實(shí)現(xiàn)模擬登錄,在Scrapy中,模擬登陸網(wǎng)站一般有如下兩種實(shí)現(xiàn)方式:

           (1) 請求時攜帶Cookies

           (2) 發(fā)送Post請求獲取Cookies

請求時攜帶Cookies

對于一些Cookies過期時間很長的不規(guī)范網(wǎng)站,如果我們能夠在Cookies過期之前爬取到所有我們想要的數(shù)據(jù),可以考慮在請求時直接將Cookies信息帶上來模擬用戶登錄。

以下是模擬登錄Github的示例代碼:

# -*- coding: utf-8 -*-
import scrapy
import re
 
class TmallLoginSpider(scrapy.Spider):
  name = 'github_login3'
  allowed_domains = ['github.com']
  start_urls = ['https://github.com/']
 
  def start_requests(self): # 請求時攜帶Cookies
    cookies = '_ga=GA1.2.363045452.1554860671; tz=Asia%2FShanghai; _octo=GH1.1.1405577398.1554860677; _device_id=ee3ff12512668a1f9dc6fb33e388ea20; ignored_unsupported_browser_notice=false; has_recent_activity=1; user_session=5oxrsfsZCor1iJFCgRXXyeAXd8hcmzEUGh70-xHWLjQkT62Q; __Host-user_session_same_site=5oxrsfsZCor1iJFCgRXXyeAXd8hcmzEUGh70-xHWLjQkT62Q; logged_in=yes; dotcom_user=pengjunlee; _gat=1'
    cookies = {i.split('=')[0]: i.split('=')[1] for i in cookies.split('; ')}
    yield scrapy.Request(self.start_urls[0], cookies=cookies)
    
  def parse(self, response): # 驗(yàn)證是否請求成功
    print(re.findall('Learn Git and GitHub without any code!',response.body.decode()))

執(zhí)行爬蟲后,后臺部分日志截圖如下:

發(fā)送Post請求模擬登錄

Scrapy還提供了兩種通過發(fā)送Post請求來獲取Cookies的方法。

scrapy.FormRequest()

使用scrapy.FormRequest()發(fā)送Post請求實(shí)現(xiàn)模擬登陸,需要人為找出登錄請求的地址以及構(gòu)造出登錄時所需的請求數(shù)據(jù)。

使用scrapy.FormRequest()模擬登錄Github的示例代碼: 

# -*- coding: utf-8 -*-
import scrapy
import re
 
class GithubLoginSpider(scrapy.Spider):
  name = 'github_login'
  allowed_domains = ['github.com']
  start_urls = ['https://github.com/login']
 
  def parse(self, response): # 發(fā)送Post請求獲取Cookies
    authenticity_token = response.xpath('//input[@name="authenticity_token"]/@value').extract_first()
    utf8 = response.xpath('//input[@name="utf8"]/@value').extract_first()
    commit = response.xpath('//input[@name="commit"]/@value').extract_first()
    form_data = {
      'login': 'pengjunlee@163.com',
      'password': '123456',
      'webauthn-support': 'supported',
      'authenticity_token': authenticity_token,
      'utf8': utf8,
      'commit': commit}
    yield scrapy.FormRequest("https://github.com/session", formdata=form_data, callback=self.after_login)
 
  def after_login(self, response): # 驗(yàn)證是否請求成功
    print(re.findall('Learn Git and GitHub without any code!', response.body.decode()))

從后臺日志不難看出,Scrapy 在請求完 https://github.com/session 后,自動幫我們重定向到了Github首頁。

scrapy.FormRequest.from_response()

scrapy.FormRequest.from_response()使用起來比 scrapy.FormRequest()更加簡單方便,我們通常只需要提供用戶相關(guān)信息(賬戶和密碼)即可,scrapy.FormRequest.from_response()將通過模擬點(diǎn)擊為我們填充好其他的表單字段并提交表單。

使用scrapy.FormRequest.from_response()模擬登錄Github的示例代碼: 

# -*- coding: utf-8 -*-
import scrapy
import re
 
class GithubLogin2Spider(scrapy.Spider):
  name = 'github_login2'
  allowed_domains = ['github.com']
  start_urls = ['https://github.com/login']
 
  def parse(self, response): # 發(fā)送Post請求獲取Cookies
    form_data = {
      'login': 'pengjunlee@163.com',
      'password': '123456'
    }
    yield scrapy.FormRequest.from_response(response,formdata=form_data,callback=self.after_login)
 
  def after_login(self,response): # 驗(yàn)證是否請求成功
    print(re.findall('Learn Git and GitHub without any code!',response.body.decode()))

scrapy.FormRequest.from_response()方法還可以傳入其他參數(shù)來幫我們更加精確的指定表單元素:

'''
response (Response object) – 包含表單HTML的響應(yīng),將用來對表單的字段進(jìn)行預(yù)填充
formname (string) – 如果設(shè)置了該值,name 等于該值的表單將被使用
formid (string) – 如果設(shè)置了該值,id 等于該值的表單將被使用
formxpath (string) – 如果設(shè)置了該值,匹配該 xpath 的第一個表單將被使用
formcss (string) – 如果設(shè)置了該值,匹配該 css選擇器的第一個表單將被使用
formnumber (integer) – 索引值等于該值的表單將被使用,默認(rèn)第一個(索引值為 0 )
formdata (dict) – 傳入的表單數(shù)據(jù),將覆蓋form 元素中已經(jīng)存在的值
clickdata (dict) – 用于查找可點(diǎn)擊控件的屬性值
dont_click (boolean) – 如果設(shè)置為 True,將不點(diǎn)擊任何元素,直接提交表單數(shù)據(jù)
'''

參考文章

https://doc.scrapy.org/en/latest/topics/request-response.html

到此這篇關(guān)于Scrapy實(shí)現(xiàn)模擬登錄的示例代碼的文章就介紹到這了,更多相關(guān)Scrapy 模擬登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python基于scrapy爬取京東筆記本電腦數(shù)據(jù)并進(jìn)行簡單處理和分析
  • Scrapy元素選擇器Xpath用法匯總
  • Django結(jié)合使用Scrapy爬取數(shù)據(jù)入庫的方法示例
  • python實(shí)現(xiàn)Scrapy爬取網(wǎng)易新聞
  • python爬蟲scrapy框架之增量式爬蟲的示例代碼
  • 一文讀懂python Scrapy爬蟲框架
  • Python爬蟲之教你利用Scrapy爬取圖片

標(biāo)簽:烏蘭察布 哈爾濱 烏蘭察布 大慶 合肥 平頂山 海南 郴州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Scrapy實(shí)現(xiàn)模擬登錄的示例代碼》,本文關(guān)鍵詞  Scrapy,實(shí)現(xiàn),模擬,登錄,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Scrapy實(shí)現(xiàn)模擬登錄的示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于Scrapy實(shí)現(xiàn)模擬登錄的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    五月婷婷欧美视频| 精品日韩在线观看| 久久99九九99精品| 极品少妇xxxx精品少妇| 日韩综合在线视频| 色综合视频在线观看| 欧美视频中文字幕| 欧美不卡在线视频| 欧美一区二区三区免费视频 | 久久久国产精品午夜一区ai换脸| 91精品国产色综合久久不卡电影| 国产成人在线免费| 成人性生交大片免费看在线播放| 懂色av中文一区二区三区| 99久久99久久免费精品蜜臀| 在线视频一区二区免费| 免费xxxx性欧美18vr| 国产真实乱子伦精品视频| 欧美电影免费观看高清完整版| 国产日韩欧美精品在线| 亚洲人成在线播放网站岛国| aaa亚洲精品一二三区| 色综合天天综合色综合av | 青青草精品视频| 国产成人精品网址| 日本aⅴ免费视频一区二区三区| 911精品国产一区二区在线| 一区在线播放视频| 麻豆国产91在线播放| 色综合久久久久| 日本一区二区电影| 国产一区二区在线观看免费| 911精品国产一区二区在线| 亚洲狠狠丁香婷婷综合久久久| 国产一区在线观看视频| 91麻豆精品国产| 亚洲国产cao| 91亚洲资源网| 国产精品久久久一本精品 | 亚洲欧美日韩国产手机在线| 韩国v欧美v亚洲v日本v| 91免费精品国自产拍在线不卡| 日本中文字幕一区二区有限公司| 欧美午夜精品久久久| 亚洲特黄一级片| 亚洲国产成人porn| 亚洲人成7777| 色婷婷综合久久久久中文| 日韩视频一区二区在线观看| 亚洲国产精品自拍| 色综合一区二区三区| 精品一区二区三区视频在线观看| 欧美一区二区国产| 蜜桃av一区二区在线观看| 成人性生交大片免费看中文| 国产精品天干天干在观线| 日产精品久久久久久久性色| 一区二区三区蜜桃| 欧美在线观看一区| 欧美美女网站色| 色诱视频网站一区| 亚洲欧美日韩在线不卡| 日本一不卡视频| 亚洲国产裸拍裸体视频在线观看乱了| 91老师片黄在线观看| 91精品国产综合久久精品 | 一区二区三区免费| 在线免费精品视频| 日本三级亚洲精品| 天天综合色天天综合色h| 91精品福利在线一区二区三区| 久久国内精品自在自线400部| 1024成人网| 91美女在线观看| 亚洲午夜免费电影| 一区二区三区在线高清| 国产激情91久久精品导航| ㊣最新国产の精品bt伙计久久| 欧美视频中文一区二区三区在线观看| 丝袜国产日韩另类美女| 色哟哟国产精品| 成人欧美一区二区三区视频网页| 一区二区三区四区av| 久久爱www久久做| 国产精品理伦片| 久久色在线视频| 欧美日韩视频在线观看一区二区三区 | www.色综合.com| 一区二区三区在线看| 欧美久久一二区| 国产精品2024| 91麻豆精品一区二区三区| 亚欧色一区w666天堂| 欧美国产日本视频| 亚洲综合色在线| 国产精品久久久久久久久免费相片| 欧美精品色综合| 日本一区二区三区在线不卡| 欧美一区二区三区视频免费播放| 91首页免费视频| 国产一区二区按摩在线观看| 爽爽淫人综合网网站| 日韩中文字幕av电影| 亚洲一区二区三区激情| 国产精品另类一区| 国产亚洲成年网址在线观看| 777亚洲妇女| 欧美在线小视频| 色综合婷婷久久| 精品一区二区三区久久久| 丝袜美腿亚洲一区| 午夜精品aaa| 欧美成人一区二区三区片免费| 久久精品72免费观看| 美女视频黄频大全不卡视频在线播放| 久久久精品人体av艺术| 欧美精品一区二区三区在线播放| 一本色道久久综合亚洲91| 国产成人精品亚洲777人妖| 天天综合色天天| 国产区在线观看成人精品| 国产suv精品一区二区6| 国产一区二区三区视频在线播放| 丝袜美腿亚洲综合| 日韩成人午夜精品| 亚洲一区二区综合| 国产精品综合网| 国产99久久久精品| caoporn国产一区二区| 久久久综合视频| 国产精品看片你懂得| 亚洲人成7777| 99v久久综合狠狠综合久久| 亚洲美女少妇撒尿| 在线观看免费亚洲| 成人国产一区二区三区精品| 91丨porny丨首页| 欧洲生活片亚洲生活在线观看| 日韩一级大片在线| 国产三区在线成人av| 国产精品美女一区二区三区| 亚洲女人****多毛耸耸8| 色香蕉成人二区免费| 国产精品高潮呻吟久久| 亚洲视频一区在线| 精品国产1区2区3区| 日韩欧美的一区二区| 久久久精品免费免费| 亚洲视频在线观看一区| 一区二区三区在线观看国产| 国产美女主播视频一区| 国产尤物一区二区在线| 91麻豆国产香蕉久久精品| 亚洲男人天堂av| 久久国产精品99精品国产| av资源站一区| 亚洲一区在线视频| 国产一区二区免费视频| 丝袜美腿亚洲综合| 亚洲综合色婷婷| 久久久久久夜精品精品免费| 国产99久久久国产精品免费看| 欧美性猛交xxxxxx富婆| 日韩vs国产vs欧美| 91亚洲精品久久久蜜桃网站| 欧美一区二区三区免费在线看| 精品一区二区三区欧美| 欧美日韩国产大片| 国产精品美日韩| 欧美日韩高清一区二区不卡| 国产精品美女一区二区三区| 亚洲欧洲精品一区二区精品久久久| 成人av网站在线观看| 欧美一级在线视频| 亚洲欧美一区二区不卡| 欧美一区二区三区视频在线| 国产精品一二三| 亚洲图片欧美一区| 美腿丝袜一区二区三区| 久久久欧美精品sm网站| 在线观看亚洲精品| 国产v综合v亚洲欧| 日日夜夜免费精品视频| 中文字幕亚洲精品在线观看| 678五月天丁香亚洲综合网| 国产成人亚洲综合色影视| 亚洲国产视频直播| 国产精品中文欧美| 欧美伦理影视网| 成人午夜av影视| 麻豆成人免费电影| 亚洲综合清纯丝袜自拍| 国产欧美一区二区三区鸳鸯浴| 欧美精品日韩一本| 成人精品国产福利| 国产精品一区二区三区网站| 亚洲第一精品在线| 亚洲国产精品99久久久久久久久| 日韩视频一区二区在线观看| 欧美性大战久久|