自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一日一技:誰說 Scrapy 不能爬 HTTP/2?

開發(fā) 前端
說 HTTP/2協(xié)議天然就能防大部分的爬蟲。Python 無論是 requests 還是 Scrapy 都不支持 HTTP/2協(xié)議。

 [[427097]]

之前有一位爬蟲大佬寫了一篇文章,說 HTTP/2協(xié)議天然就能防大部分的爬蟲。Python 無論是 requests 還是 Scrapy 都不支持 HTTP/2協(xié)議。

Go + HTTP/2[1]這個(gè)網(wǎng)站可以檢測(cè)你是否使用 HTTP/2協(xié)議進(jìn)行請(qǐng)求。當(dāng)我們直接使用瀏覽器訪問的時(shí)候,頁面長這樣:

注意紅框中的文字

但如果我們直接使用 Scrapy 訪問這個(gè)頁面,并打印源代碼,返回的 HTML 長這樣:

注意紅框中的文字

這樣看起來,似乎Scrapy 確實(shí)不支持HTTP/2協(xié)議?

但我為什么總是一直強(qiáng)調(diào)要讀官方文檔,不要去搜索一些垃圾博客呢。因?yàn)楣俜轿臋n里面,已經(jīng)明確告訴你Scrapy 不僅原生支持 HTTP/2,而且只需要改一個(gè)配置就可以了:Settings — Scrapy 2.5.0 documentation[2]。

更換下載器句柄就可以了

請(qǐng)大家注意上圖中標(biāo)紅色方框的地方。根據(jù)它的描述,我只需要在settings.py文件中,更新下載器句柄(handlers)就可以了。我們來測(cè)試一下。把下面這段代碼直接復(fù)制到 Scrapy 爬蟲中:

  1. DOWNLOAD_HANDLERS = { 
  2.     'https''scrapy.core.downloader.handlers.http2.H2DownloadHandler'

改好以后,重新運(yùn)行爬蟲,打印出來的源代碼如下圖所示:

可以看到,不需要安裝任何額外的庫。Scrapy 原生就支持 HTTP/2了。

參考文獻(xiàn)

[1] Go + HTTP/2: https://http2.golang.org/

[2] Settings — Scrapy 2.5.0 documentation: https://docs.scrapy.org/en/latest/topics/settings.html#download-handlers-base

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2021-06-08 21:36:24

PyCharm爬蟲Scrapy

2021-09-26 05:01:55

Scrapy項(xiàng)目爬蟲

2021-10-15 21:08:31

PandasExcel對(duì)象

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2021-04-12 21:19:01

PythonMakefile項(xiàng)目

2023-10-28 12:14:35

爬蟲JavaScriptObject

2021-03-12 21:19:15

Python鏈?zhǔn)?/a>調(diào)用

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2021-09-13 20:38:47

Python鏈?zhǔn)?/a>調(diào)用

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2024-11-13 09:18:09

2022-03-12 20:38:14

網(wǎng)頁Python測(cè)試

2021-04-19 23:29:44

MakefilemacOSLinux

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2024-07-19 18:23:17

2021-05-08 19:33:51

移除字符零寬

2024-11-11 00:38:13

Mypy靜態(tài)類型

2021-07-27 21:32:57

Python 延遲調(diào)用

2024-05-24 09:07:06

JSONprint字符串
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)