您好,登錄后才能下訂單哦!
本篇內容主要講解“如何用scrapy框架來登錄人人網”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何用scrapy框架來登錄人人網”吧!
寫爬蟲之前必要的分析
上圖就是我們的人人網了,通常我們想要去登錄一個網站,有兩種思路:①通過抓包工具來抓取post數據,看看里面有沒有表單,然后提交表單來進行登錄 ②通過觀察分析網頁html源碼來找到form表單標簽并且找到相關的提交參數。
經過我的分析,我用F12看了一下抓包數據,是沒有發現post數據的(大家可以自己去看一下),竟然這個行不通,我們就直接查看源代碼!
從我打箭頭的地方可以看到,我們需要傳送賬戶和密碼信息的網址是http://www.renren.com/PLogin.do ,然后我們需要傳送兩個參數email和password。
當我們提交這兩個參數過去時,如果登錄成功會返回一個登錄成功界面的源代碼,我們就通過這個源代碼來判斷是否登錄成功!
分析完啦,開始寫代碼
前面的創建爬蟲項目和文件等操作我就不多提了,不會的朋友可以去看我前面寫的文章。
我先直接甩代碼給大家了,老規矩,解釋寫在代碼注釋里了!
loginrr.py:
# -*- coding: utf-8 -*-
import scrapy
from scrapy.http import Request,FormRequest
class LoginrrSpider(scrapy.Spider):
name = 'loginrr'
allowed_domains = ['renren.com']
start_urls = ['http://renren.com/']
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
}
# 這里我們先編寫start_requests方法(會首先執行)
def start_requests(self):
# 首先訪問一遍登錄頁面(在這里我們可以監測有無驗證碼,若有則需要添加驗證碼字段,若無則不需要)
# 然后回調parse方法
# 設置meta參數,將cookiejar設置為1,表示cookjar開啟
return [Request("http://www.renren.com/PLogin.do", meta={"cookiejar": 1}, callback=self.parse)]
def parse(self, response):
# 需要發送的表單,這次沒有驗證碼
data = {
# 這里輸入你們自己的賬號密碼
'email': 'xxxxxx',
'password': 'xxxxxxxx'
}
print("正在登陸...")
# 通過 FormRequest.from_response方法來進行登錄
return [FormRequest.from_response(response,
# 設置cookie信息
meta={"cookiejar": response.meta["cookiejar"]},
headers=self.headers,
formdata=data,
# 回調到next方法
callback=self.next,
)]
def next(self, response):
# 打印登錄成功后的界面源代碼
print(response.body)
大家需要注意,在運行之間需要設置setting.py文件,將ROBOTSTXT_OBEY 設置為 False
運行結果:
到此,相信大家對“如何用scrapy框架來登錄人人網”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。