Как повернуть прокси на запросы Python - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь сделать некоторую очистку, но меня блокируют каждые 4 запроса.Я пытался изменить прокси, но ошибка та же.Что я должен сделать, чтобы изменить это правильно?

Вот код, где я пытаюсь это сделать.Сначала я получаю прокси из бесплатной сети.Затем я делаю запрос с новым прокси, но он не работает, потому что я заблокирован.

from fake_useragent import UserAgent
import requests

def get_player(id,proxy):
    ua=UserAgent()
    headers = {'User-Agent':ua.random}

    url='https://www.transfermarkt.es/jadon-sancho/profil/spieler/'+str(id)

    try:
        print(proxy)
        r=requests.get(u,headers=headers,proxies=proxy)
    execpt:

....
code to manage the data
....

Получение прокси

def get_proxies():
    ua=UserAgent()
    headers = {'User-Agent':ua.random}
    url='https://free-proxy-list.net/'

    r=requests.get(url,headers=headers)
    page = BeautifulSoup(r.text, 'html.parser')

    proxies=[]

    for proxy in page.find_all('tr'):
        i=ip=port=0

    for data in proxy.find_all('td'):
        if i==0:
            ip=data.get_text()
        if i==1:
            port=data.get_text()
        i+=1

    if ip!=0 and port!=0:
        proxies+=[{'http':'http://'+ip+':'+port}]

return proxies

Вызов функций

proxies=get_proxies()
for i in range(1,100):
    player=get_player(i,proxies[i//4])

....
code to manage the data  
....

Я знаю, что прокси-очистка хороша, потому что когда я печатаю, я вижу что-то вроде: {'http': 'http://88.12.48.61:42365'} Я бы не хотел, чтобы его блокировали.

1 Ответ

1 голос
/ 26 апреля 2019

Проблема с использованием бесплатных прокси с таких сайтов:

  1. веб-сайты знают об этом и могут блокировать только потому, что вы используете один из них

  2. вы не знаете, что другие люди не попали в черный список, делая с ними плохие вещи

  3. сайт, вероятно, использует какой-либо другой идентификатор для отслеживания вас через прокси на основе других характеристик (снятие отпечатков с устройства, прокси-прокси и т. Д.)

К сожалению, вы мало что можете сделать, кроме как быть более изощренным (распределить по нескольким устройствам, использовать VPN / TOR и т. Д.) и рискуете заблокировать ваш IP за попытку DDOS-подобного трафика или, желательно посмотреть, есть ли у сайта API для доступа

...