web-dev-qa-db-de.com

IP-Adresse dynamisch ändern?

Betrachten Sie den Fall: Ich möchte häufig Websites crawlen, aber meine IP-Adresse wurde nach einiger Zeit gesperrt.

Wie kann ich also meine IP-Adresse dynamisch oder andere Ideen ändern?

36
Magendran V

Ein Ansatz, der Scrapy verwendet, macht aus zwei Komponenten eine RandomProxy und eine RotateUserAgentMiddleware und die Änderung von DOWNLOADER_MIDDLEWARES wie folgt:

DOWNLOADER_MIDDLEWARS

Sie müssen die neuen Komponenten in den settings.py einfügen.

DOWNLOADER_MIDDLEWARES = {
        'scrapy.contrib.downloadermiddleware.retry.RetryMiddleware': 90,
        'tutorial.randomproxy.RandomProxy': 100,
        'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 110,
        'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware' : None,
        'tutorial.spiders.rotate_useragent.RotateUserAgentMiddleware' :400,

    }

Random Proxy:
Diese Komponente verarbeitet Scrapy-Anforderungen mit einem zufälligen Proxy aus der Liste, um IP-Verbote zu vermeiden und die Durchforstungsgeschwindigkeit zu verbessern. 

Weitere Informationen finden Sie hier: ( https://github.com/aivarsk/scrapy-proxies ) Sie können Ihre Proxy-Liste über eine schnelle Internetsuche erstellen. Kopieren Sie die Links in der list.txt-Datei entsprechend dem angeforderten URL-Format.

Rotation des Benutzeragenten 

Für jede Scrapeanforderung wird ein zufälliger Benutzeragent aus einer zuvor definierten Liste verwendet

class RotateUserAgentMiddleware(UserAgentMiddleware):
    def __init__(self, user_agent=''):
        self.user_agent = user_agent

    def process_request(self, request, spider):
        ua = random.choice(self.user_agent_list)
        if ua:
            request.headers.setdefault('User-Agent', ua)

            # Add desired logging message here.
            spider.log(
                u'User-Agent: {} {}'.format(request.headers.get('User-Agent'), request),
                level=log.DEBUG
            )

    #the default user_agent_list composes chrome,I E,firefox,Mozilla,opera,netscape
    #for more user agent strings,you can find it in http://www.useragentstring.com/pages/useragentstring.php
    user_agent_list = [\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"\
        "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",\
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",\
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",\
        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",\
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",\
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
       ]

Weitere Informationen finden Sie hier: ( https://Gist.github.com/seagatesoft/e7de4e3878035726731d )

34
aberna

Sie können versuchen, Proxyserver zu verwenden, um das Blockieren zu verhindern. Es gibt Dienste, die funktionierende Stellvertreter bereitstellen. Das Beste, was ich ausprobiert habe, ist https://gimmeproxy.com - sie überprüfen häufig Proxies auf verschiedene Parameter.

Um einen Proxy von ihnen zu erhalten, müssen Sie nur die folgende Anfrage stellen:

https://gimmeproxy.com/api/getProxy

Sie erhalten eine JSON-Antwort mit allen Proxy-Daten, die Sie später bei Bedarf verwenden können:

{
  "supportsHttps": true,
  "protocol": "socks5",
  "ip": "179.162.22.82",
  "port": "36915",
  "get": true,
  "post": true,
  "cookies": true,
  "referer": true,
  "user-agent": true,
  "anonymityLevel": 1,
  "websites": {
    "example": true,
    "google": false,
    "Amazon": true
  },
  "country": "BR",
  "tsChecked": 1517952910,
  "curl": "socks5://179.162.22.82:36915",
  "ipPort": "179.162.22.82:36915",
  "type": "socks5",
  "speed": 37.78,
  "otherProtocols": {}
}

Sie können es mit Curl so verwenden:

curl -x socks5://179.162.22.82:36915 http://example.com
8
Andrey E

Wenn Sie R verwenden, können Sie das Web durch TOR kriechen. Ich denke, TOR setzt seine IP-Adresse alle 10 Minuten (?) Automatisch zurück. Ich denke, es gibt eine Möglichkeit, die TOR dazu zwingt, die IP in kürzeren Abständen zu ändern, aber das hat für mich nicht funktioniert. Stattdessen können Sie mehrere Instanzen von TOR einrichten und dann zwischen den unabhängigen Instanzen wechseln (hier finden Sie eine gute Erklärung, wie Sie mehrere Instanzen von TOR einrichten können: https://tor.stackexchange.com/questions/2006/ How-to-Run-Multiple-Tor-Browser-mit-verschiedenen-ips )

Danach können Sie in R etwas wie das Folgende tun (verwenden Sie die Ports Ihrer unabhängigen TOR-Browser und eine Liste von Benutzeragenten. Jedes Mal, wenn Sie den 'getURL'-Funktionszyklus durch Ihre Liste von Ports/Benutzeragenten aufrufen)

library(RCurl)

port <- c(a list of your ports)
proxy <- paste("socks5h://127.0.0.1:",port,sep="")
ua <- c(a list of your useragents)

opt <- list(proxy=sample(proxy,1),
            useragent=sample(ua,1),
            followlocation=TRUE,
            referer="",
            timeout=timeout,
            verbose=verbose,
            ssl.verifypeer=ssl)

webpage <- getURL(url=url,.opts=opt)
7
sambold

Bei einigen VPN-Anwendungen können Sie Ihre IP-Adresse in einem festgelegten Intervall automatisch in eine neue zufällige IP-Adresse ändern, z. Beide HMA! Pro VPN und VPN4ALL-Software unterstützen diese Funktion. 

3
user12457
  • Versuchen Sie ein VPN. hidemyass.com ist eine kostenlose, einfache Option
  • Einen anderen Computer ausleihen
0

Um die VPNs zu warnen, sollten Sie die Allgemeinen Geschäftsbedingungen sorgfältig prüfen, da das Scraping mit ihnen gegen ihre Benutzerrichtlinien verstößt (beispielsweise Astrill). Ich habe ein Kratzwerkzeug ausprobiert und mein Konto gesperrt

0
Thomas meriaux

Wenn Sie öffentliche IP-Adressen haben. Fügen Sie sie auf Ihrer Benutzeroberfläche hinzu. Wenn Sie Linux verwenden, verwenden Sie Iptables zum Umschalten dieser öffentlichen IPs.

Iptables-Beispielregeln für zwei IPs

iptables -t nat -A POSTROUTING -m statistic --mode random --probability 0.5 -j SNAT --to-source 192.168.0.2

iptables -t nat -A POSTROUTING -m statistic --mode random --probability 0.5 -j SNAT --to-source 192.168.0.3

Wenn Sie 4 IPs haben, wird die Wahrscheinlichkeit 0,25.

Sie können auch Ihren eigenen Proxy mit einfachen Schritten erstellen. 

Mit diesen Regeln kann der Proxy-Server sein ausgehendes IPS wechseln. 

0
Bilal Ali Jafri