爬蟲如何應對網站的反爬機制?如何查找user-agent對應的值

import requestsurl = 'https://movie.douban.com/top250'
response = requests.get(url)
# 查看結果
print(response)

在這里插入圖片描述

??在requests使用一文中我們有講到,當狀態碼不是200時表示爬蟲不可用,也就是說我們獲取不到網頁源代碼。但是我們還是可以掙扎一下,不是說不可用就放棄了。爬蟲時經常會遇到有些網站有反爬機制,為了能夠請求成功該如何操作?那當然是把我們偽裝成瀏覽器了!

??那么如何把自己偽裝成瀏覽器代替我們發送請求呢?pycharm有個字典Headers,我們需要在瀏覽器中找到鍵User-Agent對應的值

User-Agent:對應的值包含了瀏覽器、操作系統的各項信息。如果沒有User-Agent,就相當于赤裸裸的去訪問對方服務器,只要對方有反爬蟲機制,就能發現你是爬蟲。

在瀏覽器中打開想要爬取的網站,右鍵 --> 檢查然后如下圖操作:

在這里插入圖片描述

??也有的網站刷新后出現的項目很少,甚至點開沒有User-Agent對應的值,但是有一個項目里面一定有 : 項目名跟網站地址很相近的項目中。例如在本例中名為www.zhihu.com的項目里一定含有。

??在以貝殼租房為例,打開網頁后,右鍵 --> 檢查,在項目名為zufang中一定含有User-Agent對應的值

在這里插入圖片描述

獲取鍵user-agent對應的值后,我們把鍵與值寫入字典Headers中

import requests# 1. 瀏覽器偽裝
url = 'https://movie.douban.com/top250'
headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
}
# 獲取響應結果
response = requests.get(url, headers=headers)
# 查看狀態碼
print(response.status_code)  # 200
# 獲取網頁源代碼
# print(response.text)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36449.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36449.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36449.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一文秒懂HTTP協議到底是什么?原理?

目錄 1.什么是http協議? 2.http協議的版本? 3.http文本框架 4.http請求報文 5.http報文格式 6.http響應報文 7.HTTP的狀態碼 8.HTTP首部介紹 9.什么是URL和URI? 10.CGI是什么? 1.什么是http協議? http&#…

測試架構師如何落地性能測試方案(一)

背景描述: 最近剛接手一個新項目,在最開始的時候要求對這個項目做性能測試,產品經理也給不出性能需求,只因為這個項目是電商項目,可能會有高并發,秒殺的場景,所以產品經理要求我們對這個項目必…

vue3父子組件傳值;vue3子組件傳值給父組件;vue3子組件監聽父組件接口傳值;父子組件事件調用

代碼在文末,均可直接復制使用 本文主要描述,父子組件傳值、調用等問題 文章目錄 問題1:子組件接收不到父組件傳值問題2:子組件接受的值,修改后,發現父組件值也改變了問題3:子組件接受值&#xf…

07-HDFS入門及shell命令

1 文件系統 是一種存儲和組織數據的方法,它使得文件訪問和查詢變得容易使得文件和樹形目錄的抽象邏輯概念代替了磁盤等物理設備使用數據塊的概念,用戶使用文件系統來保存數據不必關心數據底層存在硬盤哪里,只需記住這個文件的所屬目錄和文件…

STM32基于CubeIDE和HAL庫 基礎入門學習筆記:物聯網項目開發流程和思路

文章目錄: 第一部分:項目開始前的計劃與準備 1.項目策劃和開發規范 1.1 項目要求文檔 1.2 技術實現文檔 1.3 開發規范 2.創建項目工程與日志 第二部分:調通硬件電路與驅動程序 第三部分:編寫最基礎的應用程序 第四部分&…

opencv帶GStreamer之Windows編譯

目錄 1、下載GStreamer和安裝2. GSTReamer CMake配置3. 驗證是否配置成功 1、下載GStreamer和安裝 下載地址如下: gstreamer-1.0-msvc-x86_64-1.18.2.msi gstreamer-1.0-devel-msvc-x86_64-1.18.2.msi 安裝目錄無要求,主要是安裝完設置環境變量 xxx\1…

【css】漸變

漸變是設置一種顏色或者多種顏色之間的過度變化。 兩種漸變類型: 線性漸變(向下/向上/向左/向右/對角線) 徑向漸變(由其中心定義) 1、線性漸變 語法:background-image: linear-gradient(direction, co…

一圖搞懂二層交換機、三層交換機和路由器的區別

二層交換機、三層交換機、路由器的區別 二層交換機、三層交換機、路由器對比二層交換機三層交換機路由器工作在第幾層數據鏈路層(第二層)網絡層(第三層)網絡層(第三層)功能學習和轉發幀根據IP地址轉發數據…

數據鏈路層是什么?

數據鏈路層承接上層的數據,然后使用下層提供的信道,按照一定的規則,進行數據傳輸。 物理層提供了傳輸媒體與連接(信道)(數據鏈路層使用的信道通常是物理層提供的信道),即提供了比特…

webpack自動注冊全局組件

例如,在form文件夾下有許多流程類表單,一個一個注冊引入非常浪費時間,可使用webpack的require.context方法來自動導入 import { firstToUpper } from /utils/methodsconst taskTable {install: vue > {const req require.context(../fo…

springboot結合element-ui實現增刪改查,附前端完整代碼

實現功能 前端完整代碼 后端接口 登錄,注冊,查詢所有用戶,根據用戶名模糊查詢,添加用戶,更新用戶,刪除用戶 前端 注冊,登錄,退出,用戶增刪改查,導航欄&#…

Android Sutdio 導入libs文件夾下的jar包沒反應

有點離譜,笨笨的腦子才犯的錯誤 首先發現問題:轉移項目的時候 直接復制粘貼libs文件夾下的jar包到新項目,在build.gradle文件下 使用語句并應用也沒反應(jar包沒有出現箭頭且代碼報錯,找不到) implementa…

什么樣的 PLC 可以算是高端 PLC?

針對問題本身,有的回答里都提到了。可靠性,掃描時間,帶離散量點數,帶模擬量輸出點數,擴展性,這些都可以看作PLC系統級別劃分的依據。比如說,有相應安全完整性等級認證的LOGIC SOLVER為核心的PLC…

SpringBoot復習:(37)自定義ErrorController

所有接口統一返回的數據格式 package cn.edu.tju.domain;public class MyResponse {private int code;private String message;private String exception;private String stack;public int getCode() {return code;}public void setCode(int code) {this.code code;}public S…

五個獨特且有趣的ChatGPT指令

今天分享5個很實用的指令,這幾個指令很多時候對我們輸出內容的連貫性、文章風格、創意性等方面有著決定性的作用。 目錄 第一個:Max tokens(最大令牌) 第二個:Top_p(控制采樣) 第三個:Presence_penalty …

Android Studio System.out.println()中文亂碼

第一步: 打開studio64.exe.vmoptions加入-Dfile.encodingUTF-8 第二步: File-Settings-Editor-File Encodings 把所有的編碼格式改為UTF-8 嘗試跑一下代碼,如果還不行,重啟IDE 再試試。

UI美工設計崗位的工作職責

UI美工設計崗位的工作職責1 職責: 1、負責軟件界面的美術設計、創意工作和制作工作; 2、根據各種相關軟件的用戶群,提出構思新穎、有高度吸引力的創意設計; 3、對頁面進行優化,使用戶操作更趨于人性化; 4、維護現有的應用產品; 5、收集和…

NLP文本匹配任務Text Matching [無監督訓練]:SimCSE、ESimCSE、DiffCSE 項目實踐

NLP文本匹配任務Text Matching [無監督訓練]:SimCSE、ESimCSE、DiffCSE 項目實踐 文本匹配多用于計算兩個文本之間的相似度,該示例會基于 ESimCSE 實現一個無監督的文本匹配模型的訓練流程。文本匹配多用于計算兩段「自然文本」之間的「相似度」。 例如…

一百五十三、Kettle——Linux上安裝的kettle9.3啟動后說缺少libwebkitgtk-1.0(真是坑爹啊,剛龜速下載又忍痛卸載)

一、問題 在kettle9.3可以在本地連接hive312后,在Linux中安裝了kettle9.3,結果啟動時報錯WARNING: no libwebkitgtk-1.0 detected, some features will be unavailable 而且如果直接下載libwebkitgtk的話也沒有用 [roothurys22 data-integration]# yu…

Python學習筆記第五十六(Pandas JSON)

Python學習筆記第五十六天 Pandas JSONread_json()to_string()字典轉為 DataFrame 數據 內嵌的 JSON 數據json_normalize() 后記 Pandas JSON JSON(JavaScript Object Notation,JavaScript 對象表示法),是存儲和交換文本信息的語…