[Python-Crawler] Welche Crawler-Agent-IP benötigt der Crawler?

Inhaltsverzeichnis

Vorwort

1. Was ist eine Crawler-Proxy-IP?

2. Klassifizierung der Proxy-IP

1.Transparenter Proxy

2.Anonymer Proxy

3. Hoher versteckter Agent

3. So erhalten Sie eine Proxy-IP

1. Kostenlose Proxy-Website

2. Bezahlter Agenturservice

4. So verwenden Sie Proxy-IP

1. Verwenden Sie die Anforderungsbibliothek

2. Verwenden Sie die Scrapy-Bibliothek

5. Vorsichtsmaßnahmen für Proxy-IP

1. Die Proxy-IP ist möglicherweise instabil

2. Die Proxy-IP weist möglicherweise Sicherheitsprobleme auf

3. Es kann Einschränkungen hinsichtlich der Proxy-IP geben

6. Beispielanwendung einer Proxy-IP

Zusammenfassen


Vorwort

Bei der Entwicklung von Crawler-Programmen stoßen wir häufig auf Websites, deren Zugriff eingeschränkt ist. In diesem Fall müssen wir für den Zugriff eine Proxy-IP verwenden. In diesem Artikel werden das Konzept und die Verwendung von Proxy-IP vorgestellt, um den Lesern zu helfen, besser mit Zugriffsbeschränkungsproblemen in Crawler-Programmen umzugehen. Gleichzeitig stellt dieser Artikel auch einige Proxy-IP-Anbieter vor und zeigt anhand eines Beispiels, wie Proxy-IP für den Zugriff auf eingeschränkte Websites verwendet wird.

1. Was ist eine Crawler-Proxy-IP?

Beim Crawlen von Daten werden wir auf einige Websites stoßen, für die Crawler Einschränkungen gelten, z. B. IP-Blockierung, Begrenzung der Anforderungshäufigkeit usw. Diese Einschränkungen verhindern ein reibungsloses Crawlen der Daten und beeinträchtigen somit unsere Arbeit.

Um diese Einschränkungen zu umgehen, können wir Crawler-Proxy-IPs verwenden. Die sogenannte Crawler-Proxy-IP ist die IP-Adresse auf dem Proxyserver. Wir können über den Proxyserver auf die Zielwebsite zugreifen, wodurch die tatsächliche IP-Adresse ausgeblendet und die Häufigkeit der Anfragen erhöht wird.

2. Klassifizierung der Proxy-IP

Bevor wir Proxy-IP verwenden, müssen wir einige Grundkenntnisse über Proxy-IP verstehen. Proxy-IP kann in die folgenden drei Typen unterteilt werden:

1.Transparenter Proxy

Transparenter Proxy ist die einfachste Proxy-Methode. Es bietet keinen Schutz für unsere echte IP-Adresse und hat keinen Einfluss auf unsere Anfragehäufigkeit. Nachdem die Anfrage den transparenten Proxyserver durchlaufen hat, kann die Zielwebsite direkt unsere echte IP-Adresse erhalten.

2.Anonymer Proxy

Anonyme Proxys verbergen unsere echte IP-Adresse, die Anfragehäufigkeit wird jedoch immer noch durch die Zielwebsite begrenzt. Nachdem die Anfrage den anonymen Proxyserver durchlaufen hat, kann die Zielwebsite nur die IP-Adresse des Proxyservers und nicht unsere tatsächliche IP-Adresse erhalten.

3. Hoher versteckter Agent

Der hochanonyme Proxy ist die sicherste Proxy-Methode. Er verbirgt nicht nur unsere echte IP-Adresse, sondern verschleiert auch den Anforderungsheader, sodass die Zielwebsite nicht feststellen kann, ob es sich bei unserer Anfrage um eine Proxy-Anfrage handelt. Nachdem die Anfrage den Proxyserver mit hoher Dichte durchlaufen hat, kann die Zielwebsite nur die IP-Adresse des Proxyservers abrufen und nicht feststellen, ob es sich bei der Anfrage um eine Proxyanfrage handelt.

3. So erhalten Sie eine Proxy-IP

1. Kostenlose Proxy-Website

Wir können Proxy-IP über einige kostenlose Proxy-Websites erhalten. Diese Proxy-Websites stellen normalerweise eine Liste von Proxy-IPs bereit, und wir müssen nur eine verfügbare Proxy-IP aus der Liste auswählen und sie als Parameter an unser Crawler-Programm übergeben.

Beispielsweise können wir den folgenden Code verwenden, um die kostenlose Proxy-IP-Liste von der Proxy-Website https://www.zdaye.com/nn/ abzurufen:

import requests
from lxml import etree

url = 'https://www.zdaye.com/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = etree.HTML(response.text)
ips = html.xpath('//table[@id="ip_list"]/tr[position()>1]')
for ip in ips:
    ip_address = ip.xpath('./td[2]/text()')[0]
    ip_port = ip.xpath('./td[3]/text()')[0]
    print(ip_address + ':' + ip_port)
2. Bezahlter Agenturservice

Zusätzlich zu kostenlosen Proxy-Websites können wir auch über einige kostenpflichtige Proxy-Dienste hochwertige Proxy-IP erhalten. Diese kostenpflichtigen Proxy-Dienste stellen normalerweise einige API-Schnittstellen bereit, und wir müssen nur die Schnittstelle aufrufen, um die Proxy-IP zu erhalten.

Beispielsweise können wir den folgenden Code verwenden, um die Proxy-IP vom kostenpflichtigen Proxy-Dienst https://www.zdaye.com/ zu erhalten:

import requests

url = 'https://www.zdaye.com/'
response = requests.get(url)
ip_address = response.json()[0]['ip']
ip_port = response.json()[0]['port']
print(ip_address + ':' + ip_port)

4. So verwenden Sie Proxy-IP

Nachdem wir die Proxy-IP erhalten haben, müssen wir sie auf unser Crawler-Programm anwenden. Im Folgenden stellen wir zwei gängige Möglichkeiten zur Verwendung von Proxy-IP vor.

1. Verwenden Sie die Anforderungsbibliothek

Wir können die Proxy-IP mithilfe des Proxys-Parameters der Requests-Bibliothek festlegen und an die Funktion „requests.get“ übergeben. Zum Beispiel können wir den folgenden Code verwenden, um die Proxy-IP festzulegen:

import requests

url = 'https://www.baidu.com'
proxies = {'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080'}
response = requests.get(url, proxies=proxies)
print(response.text)
2. Verwenden Sie die Scrapy-Bibliothek

Wir können die Proxy-IP mithilfe des Parameters Request.meta der Scrapy-Bibliothek festlegen und an die Funktion scrapy.Request übergeben. Zum Beispiel können wir den folgenden Code verwenden, um die Proxy-IP festzulegen:

import scrapy

class MySpider(scrapy.Spider):
    name = 'myspider'
    start_urls = ['https://www.baidu.com']

    def start_requests(self):
        for url in self.start_urls:
            yield scrapy.Request(url, meta={'proxy': 'http://10.10.1.10:3128'})
            
    def parse(self, response):
        print(response.text)

5. Vorsichtsmaßnahmen für Proxy-IP

1. Die Proxy-IP ist möglicherweise instabil

Da die Proxy-IP über das Netzwerk mit dem Remote-Server verbunden ist, kann es zu Netzwerkinstabilität kommen. Bei der Verwendung von Proxy-IP müssen wir darauf achten, zu überwachen, ob die Proxy-IP ordnungsgemäß funktioniert. Wenn Probleme auftreten, müssen wir die Proxy-IP rechtzeitig ersetzen.

2. Die Proxy-IP weist möglicherweise Sicherheitsprobleme auf

Da sich auf dem Proxyserver möglicherweise Schadprogramme befinden, können bei der Verwendung der Proxy-IP gewisse Sicherheitsrisiken bestehen. Bei der Verwendung von Proxy-IP müssen wir auf den Schutz unserer Computersicherheit achten.

3. Es kann Einschränkungen hinsichtlich der Proxy-IP geben

Einige Proxy-IPs begrenzen möglicherweise die Anforderungshäufigkeit, den Anforderungsinhalt usw. Wir müssen uns bei der Verwendung von Proxy-IPs an die Nutzungsregeln von Proxy-IPs halten und dürfen keine übermäßigen Anforderungen oder illegalen Vorgänge stellen.

6. Beispielanwendung einer Proxy-IP

Im Folgenden verwenden wir Proxy-IP für den Zugriff auf Baidu-Suchergebnisse als Beispiel, um die praktische Anwendung von Proxy-IP zu demonstrieren. Wir müssen zuerst eine verfügbare Proxy-IP erhalten, dann die Proxy-IP verwenden, um auf die Baidu-Suchergebnisse zuzugreifen, und schließlich die Suchergebnisse in einer lokalen Datei speichern.

import requests
from lxml import etree

# 获取代理 IP
url = 'https: 'https://www.zdaye.com/'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = etree.HTML(response.text)
ips = html.xpath('//table[@id="ip_list"]/tr[position()>1]')
ip_address = ips[0].xpath('./td[2]/text()')[0]
ip_port = ips[0].xpath('./td[3]/text()')[0]
proxies = {'http': 'http://' + ip_address + ':' + ip_port, 'https': 'http://' + ip_address + ':' + ip_port}

# 使用代理 IP 访问百度搜索结果
keyword = 'Python 爬虫'
url = 'https://www.baidu.com/s?wd=' + keyword
response = requests.get(url, proxies=proxies)
html = etree.HTML(response.text)
search_results = html.xpath('//div[@id="content_left"]/div[@class="result"]')
for result in search_results:
    title = result.xpath('.//h3/a/text()')[0]
    link = result.xpath('.//h3/a/@href')[0]
    abstract = result.xpath('.//div[@class="c-abstract"]/text()')[0]
    print(title)
    print(link)
    print(abstract)

# 将搜索结果保存到本地文件中
filename = 'search_results.html'
with open(filename, 'w', encoding='utf-8') as f:
    f.write(response.text)

Durch die Demonstration des obigen Codes können wir die Bedeutung von Proxy-IP in praktischen Anwendungen erkennen und erfahren, wie Proxy-IP für den Zugriff auf eingeschränkte Websites verwendet wird.

Zusammenfassen

In diesem Artikel wird vorgestellt, was Crawler-Proxy-IP ist, sowie die Klassifizierungs- und Erfassungsmethoden von Proxy-IP. Gleichzeitig stellt dieser Artikel auch die Verwendung von Proxy-IP in Crawler-Anwendungen vor und erinnert Sie an die Vorsichtsmaßnahmen, die bei der Verwendung von Proxy-IP beachtet werden müssen. Abschließend zeigt dieser Artikel anhand eines Beispiels, wie Sie Proxy-IP verwenden, um auf eingeschränkte Websites zuzugreifen. Ich glaube, dass die Leser durch die Einleitung dieses Artikels das Konzept von Proxy-IP besser verstehen und die Anwendungsfähigkeiten von Proxy-IP beherrschen können.

Generell ist der Anwendungsbereich von Proxy-IP sehr breit, insbesondere im Crawler-Bereich ist der Einsatz von Proxy-IP unverzichtbar. Bei der tatsächlichen Verwendung müssen wir eine zuverlässige Proxy-IP auswählen und die Proxy-IP angemessen verwenden, um sicherzustellen, dass unser Crawler-Programm normal ausgeführt werden kann.

Guess you like

Origin blog.csdn.net/wq10_12/article/details/133132244