Форум сайта python.su
0
Доброго времени суток. Помогите пожалуйста решить проблему с подвисанием proxy. Мне нужно при зависание прокси чтобы скрипт заново начинал отрабатывать с другим прокси пока все у него не получится
Вот с чем я работаю
# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains import time, random import threading def like_post(login, pas, proxy): time_sleep = 10 service_args = [ '--proxy='+str(proxy)+':8080', '--proxy-auth=RU******:**VNBAzs0A', '--proxy-type=HTTP', ] f1 = open(r'link_post.txt') post = f1.readlines() post_len = len(open(r'link_post.txt').readlines()) f1.close() driver = webdriver.PhantomJS('/home/montana/phantomjs/bin/phantomjs', service_args=service_args) driver.set_window_size(1120, 550) driver.get('http://******.net') time.sleep(time_sleep) driver.find_element_by_xpath(".//*[@id='header']/a[8]").click() time.sleep(time_sleep) login = driver.find_element_by_xpath(".//*[@id='user_email']").send_keys(login) pwd = driver.find_element_by_xpath(".//*[@id='user_password']").send_keys(pas) driver.save_screenshot('test1.png') driver.find_element_by_xpath(".//*[@id='loginPopupSubmitButton']").click() driver.save_screenshot('test2.png') time.sleep(30) for i in range(len(post)): driver.get(str(post[i]).rstrip()) time.sleep(time_sleep) driver.find_element_by_xpath(".//*[@id='fs6-like-btn']").click() driver.save_screenshot('test3.png') print 'like' driver.quit() def main(): try: like_post("login", "pass", "**.215.136.236") time.sleep(10) except: print 'Исключение ' if __name__ == '__main__': main()
Офлайн
857
Либо исправный прокси-сервер должен подбираться заранее, либо like_post() должна принимать список прокси-серверов. А лучше сделать и то, и то другое через две функции.
def like_post_over_proxies(login, pswd, proxies): for p in proxies: if is_active_proxy(p): like_post(login, pswd, p) return True return False
Офлайн