Python richiede l’agente utente: come impostare agenti utente falsi

Cosa sai del supporto per l’agente utente della richiesta di Python? Se non sai poco o nulla, allora l’articolo di seguito è stato scritto per te. Cono ora per imparare a impostare e ruotare gli agenti utente nelle richieste.

Python richiede l'agente utente come impostare agenti utente falsi

Ogni volta che un client invia una richiesta a un server, deve identificarsi dicendo al server Web il suo nome: alcuni includono anche il sistema operativo su cui vengono eseguiti e persino la versione del software. Questo mezzo di identificazione è noto come agente utente ed è impostato configurando l’intestazione dell’agente utente per l’intestazione HTTP. Non importa se un client sia un browser, un bot o persino un’app ufficiale creata dal server Web stesso, un client deve inviare questa intestazione.

Tutti i client popolari hanno la stringa dell’agente utente che utilizzano. Se sei uno sviluppatore di bot, devi anche sapere che questo è importante per te. Quando si codifica il tuo bot, devi anche impostare questa intestazione. Senza impostarlo, la libreria HTTP ne impone una per te.

Il focus di questo articolo è sulle richieste di Python agente utente, che è noto per l’impostazione di una stringa di agenti utente generici che dica al tuo obiettivo che è un bot. Se hai bisogno di raschiare obiettivi popolari sul Web, devi cambiarlo in qualcosa di diverso, ed è per questo che questo articolo è stato scritto: per fornirti una guida su come modificare la stringa dell’agente utente richiede la stringa dell’agente utente.


Fun Agente utente utilizzando le richieste di Python: una panoramica

Le richieste di Python sono la libreria di terze parti di fatto per le richieste HTTP a causa della sua semplicità, facilità di utilizzo, robustezza e migliore gestione degli errori. Tra le altre cose, una delle sue funzionalità è che ti consente di impostare agenti utente falsi. Usando questo, puoi identificarti come un famoso browser Web, anche come Googlebot, per evitare di essere bloccato. Tuttavia, le richieste non rendono obbligatorio per impostare un’intestazione dell’agente utente. Ma se non lo fai, ti fornirà un agente utente predefinito. Di seguito è riportata l’intestazione dell’agente utente predefinito per le richieste.

Python-requests/x.y.z

XYZ è un segnaposto e contiene la versione delle richieste che stai utilizzando. Non ci sono problemi con l’utilizzo di questo. Tuttavia, se il tuo obiettivo è difficile, verrai bloccato. Prendi, ad esempio, Amazon blocca questo agente utente per impostazione predefinita, anche per ottenere le prime richieste. Cambiare il tuo agente utente in quello di un popolare client accettabile, come i browser Web, è una delle attività che dovresti svolgere se si desidera evitare di essere bloccato quando si raschiano o si fa altri tipi di botting. E interessante, è molto facile da fare utilizzando le richieste senza pagare un centesimo.


Come impostare l’agente utente nelle richieste di Python

I passaggi richiesti per l’impostazione di un agente utente nelle richieste di Python sono facili. Tutto quello che devi fare è aggiungerlo come coppia di valore chiave in un dizionario e passarlo al parametro di intestazione nelle richieste. Lascia che ti guidi attraverso il metodo, incluso come ottenere una stringa di agente utente da utilizzare. In questa guida, userò il mio agente utente del browser.

Passo 1: Visita la pagina API String String dell’utente di HTTPBIN utilizzando il browser Web. Per me, ho ottenuto il di sotto come risposta.

{

  "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Safari/605.1.15"

}

Passo 2: Come puoi vedere sopra, viene restituito in un dizionario – tipico di un’API. Ma puoi vedere la stringa dell’agente utente – Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, come Gecko) versione/14.1 Safari/605.1.15. Questo dice al server Web che sto utilizzando un computer MAC con il browser Safari.

Passaggio 3: La prossima cosa da fare è installare le richieste utilizzando il comando PIP di seguito.

pip install requests

Passaggio 4: Quindi importare richieste, creare il dizionario di intestazione, passare l’agente utente come coppia di valore chiave, quindi passare l’intestazione come dizionario.

import requests

headers ={

  "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Safari/605.1.15"

}

user_agent = requests.get(“https://httpbin.org/user-agent”, headers=headers).json()

print(user_agent)

Come puoi vedere sopra, ho richiesto al mio agente utente utilizzando la stessa API HTTPBIN e ho ottenuto lo stesso valore che ho ottenuto quando ho usato il mio browser. Con questo, posso dire con successo che ho simulato l’agente utente nelle richieste di Python, facendo sembrare che stavo usando il mio browser quando in realtà sto usando Python Richiesta.


Come ruotare la stringa dell’agente utente nelle richieste di Python

È bene cambiare il tuo agente utente, ma quando la raschiatura del web è ancora meglio avere un sacco di stringhe degli agenti utente e ruotare casualmente tra loro. In questa sezione, ti mostrerò come ruotare una stringa dell’agente utente nelle richieste di Python.

Passo 1: Innanzitutto, hai bisogno di un mucchio di stringhe per l’utente-agente. Vai alla libreria degli agenti utente su Device Atlas (https://deviceatlas.com/blog/list-of-user-agent-strings) e prendine un sacco. Userò solo 3 in questo esempio.

Passo 2: Copia una volta che hai scelto nel tuo blocco note, poiché ne avrai bisogno in seguito.

Passaggio 3: Vai al tuo IDE e crea un nuovo file Python.

Passaggio 4: Importa richieste e il modulo casuale

import requests

import random

Passaggio 5: Carica gli agenti utente che hai copiato come variabile di elenco

user_agent_strings = (

            ‘Mozilla/5.0 (Linux; Android 13; SM-S908B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Mobile Safari/537.36’,

            ‘Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36’,

            ‘Mozilla/5.0 (iPhone12,1; U; CPU iPhone OS 13_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/15E148 Safari/602.1’,

)

Passaggio 6: Usa la funzione casuale per sceglierne solo una e assegnarlo come agente utente nella variabile di intestazione

random_number = random.randint(0, len(user_agent_strings)-1)

headers = {User-Agent: user_agent_strings(random_number)}

Passaggio 7: Aggiungi l’intestazione come parametro di intestazione nelle richieste

user_agent = requests.get(“https://httpbin.org/user-agent”, headers=headers)

print(user_agent)

Passaggio 8: Di seguito è riportato il codice completo

import requests

import random

user_agent_strings = (

            ‘Mozilla/5.0 (Linux; Android 13; SM-S908B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Mobile Safari/537.36’,

            ‘Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36’,

            ‘Mozilla/5.0 (iPhone12,1; U; CPU iPhone OS 13_0 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/15E148 Safari/602.1’,

)

random_number = random.randint(0, len(user_agent_strings)-1)

headers = {User-Agent: user_agent_strings(random_number)}

user_agent = requests.get(“https://httpbin.org/user-agent”, headers=headers)

print(user_agent)

Domande frequenti su Python richiede l’agente utente

D. L’intestazione dell’agente utente è l’unica intestazione che devo impostare?

L’agente utente è solo una delle intestazioni che è possibile impostare. Sulla maggior parte dei siti Web, è sufficiente l’impostazione dell’agente utente. Ma ci sono alcuni siti Web che vanno oltre a controllare se hai le altre intestazioni impostate e, in caso contrario, diventa sospetto. Alcuni degli altri agenti utente che devi impostare includono Accetta, accetta-codifica e accetta in lingua. Puoi sempre controllare i valori dallo strumento sviluppatore del browser per vedere le intestazioni che il browser sta inviando.

D. L’impostazione delle intestazioni HTTP impedirà il blocco?

Basta impostare le intestazioni HTTP nelle richieste di Python non ti aiuta a proteggerti dal blocco. I siti Web utilizzano un buon numero di tecniche per rilevare e bloccare i robot e le intestazioni degli utenti sono solo un piccolo frammento della torta. Ciò è dovuto alla facilità con cui possono essere falsificati come apprezzato. Per evitare effettivamente il blocco, dovrai ruotare IPS utilizzando i proxy e avere un risolutore di captcha a portata di mano se il bersaglio utilizza un captcha per proteggere il suo sistema. Per alcuni siti Web, dovrai anche utilizzare un browser di automazione.

D. Le richieste di Python sono buone per la raschiatura?

Per quanto riguarda la raschiatura in Python, le richieste di Python sono uno dei grandi strumenti là fuori. È costruito come un involucro per l’Urlib molto difficile da usare. Supporta l’uso di proxy, gestione degli errori e altre funzionalità avanzate. Tuttavia, ci sono richieste di attività che non sarebbero buone a causa della mancanza di supporto per l’esecuzione di JavaScript. Se è necessario eseguire il rendering ed eseguire JavaScript per accedere ai tuoi dati, allora Selenio è il migliore per te come sviluppatore di Python.


Conclusion

Da quanto sopra, puoi vedere quanto è facile impostare l’intestazione dell’agente e falsificare usando le richieste di Python. Mentre falsificare un agente utente è buono per nascondere il tuo cliente, devi anche sapere che potrebbe causare la rottura del bot se viene modificato in un agente utente a cui il tuo target invia una progettazione di pagina unica. Quindi, dovresti avere una comprensione degli agenti utente che usi per evitare di spezzare il codice.