用Python请求旋转代理吗?

时间:2019-07-20 23:46:05

标签: python beautifulsoup python-requests proxies

我正在建立一些功能来自动化我的Google搜索的一部分,并且大约10到20个请求后,我的IP被阻止了。

因此,我试图构建一个功能,该功能可抓取代理列表并通过请求库发送,但我无法仅发送有效的代理。

我尝试了try和except方法,如您在我的代码中看到的那样,它没有用

我还考虑过使用if / else,但是我不知道该方法使用哪种逻辑

我用Google搜索它,看到了一些解决方案,采用了Scrap / Selenium,但我现在更喜欢避免使用它们,而是坚持我所知道的,而不是由于时间不足而开始学习新知识。

import requests
from bs4 import BeautifulSoup
import random
import re

def get_proxy():

    ports = []
    proxxies = []
    final_server= []
    url = 'https://sslproxies.org'

    response = requests.get(url)
    data = response.text
    soup = BeautifulSoup(data, 'html5lib')



    ports = re.findall(r'<td>(\d+)<', str(soup))

    proxxies = re.findall(r'\d+\.\d+\.\d+\.\d+', str(soup))

    for proxxi, port  in zip(proxxies,ports):
        final_server.append(proxxi+':'+port)


    print(final_server)


    ran_pro = {'https':random.choice(final_server)}
    print(ran_pro)
    return ran_pro

def proxy_test(test_url):
 while 1:
  try:
      proxy = get_proxy
      print(proxy)
      r=requests.get(test_url,proxies=proxy,timeout=5)
      print(r.status_code)
      return proxy
      break
      except:
      print('didnt work')
      pass

我知道我会遇到两个不同的问题:

  1. 代理已被列入黑名单,我将收到ProxyError

  2. 该代理完全不起作用,我将收到TimeoutError

我的问题是我不明白为什么下面的代码不起作用。

任何帮助将不胜感激。

0 个答案:

没有答案