人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

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

發(fā)布日期:2021-12-11 07:42 | 文章來(lái)源:源碼中國(guó)

browsercookie 知識(shí)鋪墊

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

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

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)容。

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

下面拿 某管理中心舉例,在火狐瀏覽器登錄過(guò)之后,使用 browsercookie 獲取 cookie 之后,就可以直接訪問(wèn)后臺(tái)接口。

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)

可以直接獲取到后臺(tái)菜單。

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

在 scrapy 框架中,已經(jīng)內(nèi)置了一個(gè) CookiesMiddleware 用于處理 cookies,我們這次通過(guò)繼承 CookiesMiddleware ,然后使用 browsercookie 庫(kù)完成點(diǎn)贊器的研發(fā)(僅做了一個(gè)測(cè)試案例,沒有使用并發(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):
  # 注意這個(gè)地方的名字叫做 firefox
  jar = self.jars['firefox']
  firefox_cookiejar = browsercookie.firefox()
  for cookie in firefox_cookiejar:
jar.set_cookie(cookie)

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

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

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

在編寫爬蟲核心函數(shù),重點(diǎn)修改 Request 請(qǐng)求為 POST 請(qǐng)求,并且攜帶相關(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實(shí)戰(zhàn)scrapy操作cookie爬取博客涉及browsercookie的詳細(xì)內(nèi)容,更多關(guān)于scrapy操作cookie爬取博客的資料請(qǐng)關(guān)注本站其它相關(guān)文章!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部