亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Scrapy實現模擬登錄的示例代碼

Scrapy實現模擬登錄的示例代碼

熱門標簽:騰訊地圖標注有什么版本 千呼ai電話機器人免費 外呼系統前面有錄音播放嗎 深圳網絡外呼系統代理商 高德地圖標注字母 鎮江人工外呼系統供應商 申請辦個400電話號碼 柳州正規電銷機器人收費 400電話辦理費用收費

為什么要模擬登錄

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

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

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

           (1) 請求時攜帶Cookies

           (2) 發送Post請求獲取Cookies

請求時攜帶Cookies

對于一些Cookies過期時間很長的不規范網站,如果我們能夠在Cookies過期之前爬取到所有我們想要的數據,可以考慮在請求時直接將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): # 驗證是否請求成功
    print(re.findall('Learn Git and GitHub without any code!',response.body.decode()))

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

發送Post請求模擬登錄

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

scrapy.FormRequest()

使用scrapy.FormRequest()發送Post請求實現模擬登陸,需要人為找出登錄請求的地址以及構造出登錄時所需的請求數據。

使用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): # 發送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): # 驗證是否請求成功
    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()更加簡單方便,我們通常只需要提供用戶相關信息(賬戶和密碼)即可,scrapy.FormRequest.from_response()將通過模擬點擊為我們填充好其他的表單字段并提交表單。

使用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): # 發送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): # 驗證是否請求成功
    print(re.findall('Learn Git and GitHub without any code!',response.body.decode()))

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

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

參考文章

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

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

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

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

巨人網絡通訊聲明:本文標題《Scrapy實現模擬登錄的示例代碼》,本文關鍵詞  Scrapy,實現,模擬,登錄,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Scrapy實現模擬登錄的示例代碼》相關的同類信息!
  • 本頁收集關于Scrapy實現模擬登錄的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    成人a大片高清在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美国产日韩在线| 高清一级片| 国产美女在线观看| 欧美国产日韩一区二区三区| 亚洲女人国产香蕉久久精品| 成人在免费观看视频国产| 台湾毛片| 你懂的日韩| 毛片成人永久免费视频| 欧美激情一区二区三区在线播放 | 一级片片| 日本伦理片网站| 毛片成人永久免费视频| 亚久久伊人精品青青草原2020| 亚洲精品中文字幕久久久久久| 黄色短视频网站| 成人a大片在线观看| 你懂的福利视频| 日本伦理黄色大片在线观看网站| 成人av在线播放| 精品国产亚洲一区二区三区| 一级毛片视频免费| 国产91丝袜在线播放0| 美女免费毛片| 精品国产一区二区三区久久久蜜臀| 久久国产一久久高清| 成人免费观看视频| 免费毛片基地| 亚洲第一色在线| 美女免费黄网站| 成人免费观看男女羞羞视频| 国产高清在线精品一区a| 久久精品免视看国产明星| 久久99中文字幕| 国产成人啪精品| 黄色免费网站在线| 国产成人精品影视| 日韩中文字幕在线播放| 国产视频久久久久| 国产a视频精品免费观看| 国产不卡高清在线观看视频| 你懂的日韩| 欧美另类videosbestsex | 亚洲第一色在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品久久久久久综合网| 香蕉视频久久| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 黄色免费网站在线| 精品久久久久久中文| 韩国三级香港三级日本三级| 日韩欧美一及在线播放| 日本在线播放一区| 国产视频在线免费观看| 欧美激情一区二区三区视频高清| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 91麻豆精品国产片在线观看| 国产一区精品| 国产精品1024在线永久免费| 久草免费在线观看| 国产伦久视频免费观看视频| 精品视频在线观看视频免费视频| 高清一级淫片a级中文字幕| 韩国三级一区| 欧美a级片免费看| 日韩专区亚洲综合久久| 亚洲 激情| 九九久久国产精品| 精品久久久久久中文字幕2017| 九九久久国产精品| 国产成a人片在线观看视频| 一级毛片视频播放| 国产国语对白一级毛片| 九九热国产视频| 99热精品一区| 九九久久99| 一级女性全黄久久生活片| 国产美女在线观看| 天天做人人爱夜夜爽2020 | 国产不卡在线观看| 国产a视频精品免费观看| 青青青草影院 | 日韩免费在线观看视频| 久久精品人人做人人爽97| 久久国产一区二区| 黄视频网站在线观看| 青青久久网| 日韩欧美一及在线播放| 精品在线观看国产| 成人免费观看的视频黄页| 国产高清在线精品一区a| 超级乱淫伦动漫| 日韩欧美一二三区| 久久成人综合网| 国产视频久久久| 国产视频一区二区在线观看 | 麻豆污视频| 国产国语对白一级毛片| 午夜欧美成人香蕉剧场| 一级女性全黄生活片免费| 精品视频在线观看免费| 韩国三级视频网站| 国产精品1024永久免费视频| 亚洲天堂在线播放| 毛片成人永久免费视频| 91麻豆国产级在线| 青青青草视频在线观看| 久久福利影视| 一级毛片视频播放| 成人高清视频在线观看| 免费的黄色小视频| 国产高清在线精品一区二区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 免费的黄视频| 九九久久99综合一区二区| 人人干人人草| 亚洲天堂免费观看| 黄色福利| 国产亚洲男人的天堂在线观看| 免费国产在线观看| 亚欧视频在线| 二级片在线观看| 尤物视频网站在线| 国产不卡精品一区二区三区| 日本特黄一级| 亚洲天堂免费观看| 国产精品自拍在线| 成人a大片高清在线观看| 久久成人亚洲| 国产精品免费久久| 欧美大片一区| 日韩免费在线观看视频| 天天做日日干| 成人影院久久久久久影院| 日本特黄特黄aaaaa大片| 国产美女在线观看| 日韩专区亚洲综合久久| 国产高清在线精品一区a| 日韩在线观看免费| 欧美1区| 精品国产一区二区三区久| 久久精品店| 国产a毛片| 成人免费网站视频ww| 久久精品大片| 国产视频久久久久| 免费一级生活片| 国产不卡在线看| 四虎影视精品永久免费网站 | 国产成人精品综合| 国产高清视频免费| 欧美1区| 国产不卡精品一区二区三区| 国产极品白嫩美女在线观看看| 久久国产影视免费精品| 精品国产一区二区三区久久久狼| 国产成人女人在线视频观看 | 91麻豆精品国产综合久久久| 99久久精品国产麻豆| a级毛片免费观看网站| 欧美大片毛片aaa免费看| 国产91丝袜高跟系列| 香蕉视频一级| 91麻豆精品国产片在线观看| 日韩一级黄色片| 国产伦久视频免费观看 视频| 色综合久久天天综合| 日韩中文字幕一区| 亚洲精品久久久中文字| 免费一级生活片| 午夜欧美成人香蕉剧场| 欧美大片一区| 国产麻豆精品免费密入口| 国产网站免费| 亚洲精品久久玖玖玖玖| 久久国产影视免费精品| 青青青草影院| 国产原创中文字幕| 国产视频一区二区在线观看 | 韩国毛片免费大片| 99久久网站| 99色视频在线观看| 999久久狠狠免费精品| 你懂的日韩| 精品国产一级毛片| 国产精品自拍一区| 久久精品大片| 四虎精品在线观看| 精品视频在线观看一区二区三区| 天天色成人| 一级女性全黄生活片免费| 九九久久99综合一区二区| 久久精品成人一区二区三区| 青青久久精品| 国产91丝袜在线播放0| 91麻豆国产| 日韩免费在线| 欧美另类videosbestsex久久|