Подтвердить что ты не робот

Изменение IP-адреса динамически?

Рассмотрим случай, Я хочу часто обходить веб-сайты, но мой IP-адрес заблокирован через день/лимит.

Итак, как можно изменить мой IP-адрес динамически или какие-либо другие идеи?

4b9b3361

Ответ 1

Подход с использованием Scrapy будет использовать два компонента, RandomProxy и RotateUserAgentMiddleware.

Измените DOWNLOADER_MIDDLEWARES следующим образом. Вам нужно будет вставить новые компоненты в settings.py:

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,    
}

Случайный прокси

Вы можете использовать scrapy-proxies. Этот компонент будет обрабатывать запросы Scrapy, используя случайный прокси-сервер из списка, чтобы избежать запрета IP-адресов и повысить скорость сканирования.

Вы можете создать свой список прокси из быстрого поиска в Интернете. Скопируйте ссылки в файл list.txt соответствии с запрошенным форматом URL.

Ротация пользовательского агента

Для каждого запроса scrapy будет использоваться случайный пользовательский агент из списка, который вы определили заранее:

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"
    ]

Подробнее здесь.

Ответ 2

Вы можете попробовать использовать прокси-серверы для предотвращения блокировки. Есть сервисы, предоставляющие рабочие прокси. Лучшее, что я попробовал, это https://gimmeproxy.com - они часто проверяют прокси на различные параметры.

Чтобы получить от них прокси, вам нужно просто сделать следующий запрос:

https://gimmeproxy.com/api/getProxy

Они предоставят JSON-ответ со всеми прокси-данными, которые вы сможете использовать позже при необходимости:

{
  "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": {}
}

Вы можете использовать это как Curl:

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

Ответ 3

Если вы используете R, вы можете выполнять сканирование через TOR. Я думаю, что TOR автоматически сбрасывает свой IP-адрес каждые 10 минут (?). Я думаю, что есть способ заставить TOR изменить IP в короткие промежутки времени, но это не сработало для меня. Вместо этого вы можете настроить несколько экземпляров TOR и затем переключаться между независимыми экземплярами (здесь вы можете найти хорошее объяснение того, как настроить несколько экземпляров TOR: https://tor.stackexchange.com/questions/2006/how-to-run-multiple-tor-browsers-with-different-ips)

После этого вы можете сделать что-то вроде следующего в R (используйте порты ваших независимых браузеров TOR и список пользовательских атак. Каждый раз, когда вы вызываете цикл "getURL" через список портов /useragents )

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)

Ответ 4

Некоторые приложения VPN позволяют автоматически изменять свой IP-адрес на новый случайный IP-адрес с заданным интервалом, таким как: каждые 2 минуты. Оба HMA! Pro VPN и VPN4ALL поддерживают эту функцию.

Ответ 5

Слово с предупреждением о VPN, внимательно изучите их Условия и положения, потому что их использование противоречит их политике пользователя (одним из таких примеров может быть Astrill). Я попробовал очистить инструмент и заблокировал мой аккаунт

Ответ 6

Если у вас есть публичные IP-адреса. Добавьте их в свой интерфейс и, если вы используете Linux, используйте Iptables для переключения этих публичных IP-адресов.

Типовые правила Iptables для двух IP-адресов

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

Если у вас 4 IP-адреса, то вероятность станет 0,25.

Вы также можете создать свой собственный прокси с помощью простых шагов.

Эти правила позволят прокси-серверу переключать свой исходящий IPS.

Ответ 7

  • Попробуйте VPN. hidemyass.com - один бесплатный, простой вариант.
  • Заимствуйте другой компьютер.