亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python實(shí)戰(zhàn)scrapy操作cookie爬取博客涉及browsercookie

 更新時間:2021年11月13日 16:40:56   作者:夢想橡皮擦  
這篇文章主要為大家介紹了python實(shí)戰(zhàn)scrapy操作cookie爬取博客涉及browsercookie,下面來學(xué)習(xí)一下 scrapy 操作 Cookie來爬取博客吧

browsercookie 知識鋪墊

第一個要了解的知識點(diǎn)是使用 browsercookie 獲取瀏覽器 cookie ,該庫使用命令 pip install browsercookie 安裝即可。

接下來獲取 firefox 瀏覽器的 cookie,不使用 chrome 谷歌瀏覽器的原因是在 80 版本之后,其 cookie 的加密方式進(jìn)行了修改,所以使用 browsercookie 模塊會出現(xiàn)如下錯誤

win32crypt must be available to decrypt Chrome cookie on Windows

獲取 cookie 的代碼如下所示:

import browsercookie

firefox_cookiejar = browsercookie.firefox()

for c in firefox_cookiejar:
    print(c)

運(yùn)行代碼,輸出如下格式內(nèi)容。

Python 爬蟲 cookie 實(shí)戰(zhàn)博客,涉及 browsercookie 與 scrapy

獲取了 cookies 之后,就可以訪問之后登錄后才能訪問的頁面了(前提是在火狐瀏覽器登錄過一次)。

下面拿 某管理中心舉例,在火狐瀏覽器登錄過之后,使用 browsercookie 獲取 cookie 之后,就可以直接訪問后臺接口。

import browsercookie
import requests

firefox_cookiejar = browsercookie.firefox()

# for c in firefox_cookiejar:
#     print(c)

res = requests.get("https://img-home.csdnimg.cn/data_json/jsconfig/menu_path.json", cookies=firefox_cookiejar)
print(res.text)

可以直接獲取到后臺菜單。

Python 爬蟲 cookie 實(shí)戰(zhàn)博客,涉及 browsercookie 與 scrapy

使用 browsercookie 實(shí)現(xiàn) 自動化點(diǎn)贊

在 scrapy 框架中,已經(jīng)內(nèi)置了一個 CookiesMiddleware 用于處理 cookies,我們這次通過繼承 CookiesMiddleware ,然后使用 browsercookie 庫完成點(diǎn)贊器的研發(fā)(僅做了一個測試案例,沒有使用并發(fā)哦)

打開 middlewares.py 文件,編寫自定義的類:

from scrapy.downloadermiddlewares.cookies import CookiesMiddleware
import browsercookie
class BrowserCookiesDownloaderMiddleware(CookiesMiddleware):
    def __init__(self, debug=False):
        super().__init__(debug)
        self.load_browser_cookies()

    def load_browser_cookies(self):
        # 注意這個地方的名字叫做 firefox
        jar = self.jars['firefox']
        firefox_cookiejar = browsercookie.firefox()
        for cookie in firefox_cookiejar:
            jar.set_cookie(cookie)

上述類的核心內(nèi)容是使用 browsercookie 對瀏覽器的 cookie 進(jìn)行提取,存儲到 CookieJar 類型的字典 jars 中,后續(xù)請求的時候,在進(jìn)行調(diào)用。

同步在 settings.py 文件中禁用默認(rèn)的 CookiesMiddleware,啟用咱們自定義的新類。

DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.cookies.CookiesMiddleware': None,
    'csdn.middlewares.BrowserCookiesDownloaderMiddleware': 543,
}

在編寫爬蟲核心函數(shù),重點(diǎn)修改 Request 請求為 POST 請求,并且攜帶相關(guān)參數(shù),meta={'cookiejar':COOKIEJAR}
代碼如下所示:

import scrapy
class ClikeSpider(scrapy.Spider):
    name = 'clike'
    allowed_domains = ['csdn.net']
    like_url = 'https://blog.csdn.net/phoenix/web/v1/article/like'
    def start_requests(self):
        data = {
            "articleId": "120845464",
        }
        yield scrapy.FormRequest(url=self.like_url, formdata=data, meta={'cookiejar': 'firefox'})
    def parse(self, response):
        print(response.json())

運(yùn)行爬蟲之后,在日志中可以發(fā)現(xiàn)成功的點(diǎn)贊了。

Python 爬蟲 cookie 實(shí)戰(zhàn)博客,涉及 browsercookie 與 scrapy

以上就是python實(shí)戰(zhàn)scrapy操作cookie爬取博客涉及browsercookie的詳細(xì)內(nèi)容,更多關(guān)于scrapy操作cookie爬取博客的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論