Inhaltsverzeichnis
1. Was ist eine Crawler-Proxy-IP?
2. Klassifizierung der Proxy-IP
3. So erhalten Sie eine 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
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.