-
-
Save tushortz/cba8b25f9d80f584f807b65890f37be5 to your computer and use it in GitHub Desktop.
from selenium import webdriver | |
from selenium.webdriver.chrome.options import DesiredCapabilities | |
from selenium.webdriver.common.proxy import Proxy, ProxyType | |
import time | |
co = webdriver.ChromeOptions() | |
co.add_argument("log-level=3") | |
co.add_argument("--headless") | |
def get_proxies(co=co): | |
driver = webdriver.Chrome(chrome_options=co) | |
driver.get("https://free-proxy-list.net/") | |
PROXIES = [] | |
proxies = driver.find_elements_by_css_selector("tr[role='row']") | |
for p in proxies: | |
result = p.text.split(" ") | |
if result[-1] == "yes": | |
PROXIES.append(result[0]+":"+result[1]) | |
driver.close() | |
return PROXIES | |
ALL_PROXIES = get_proxies() | |
def proxy_driver(PROXIES, co=co): | |
prox = Proxy() | |
if len(PROXIES) < 1: | |
print("--- Proxies used up (%s)" % len(PROXIES)) | |
PROXIES = get_proxies() | |
pxy = PROXIES[-1] | |
prox.proxy_type = ProxyType.MANUAL | |
prox.http_proxy = pxy | |
prox.socks_proxy = pxy | |
prox.ssl_proxy = pxy | |
capabilities = webdriver.DesiredCapabilities.CHROME | |
prox.add_to_capabilities(capabilities) | |
driver = webdriver.Chrome(chrome_options=co, desired_capabilities=capabilities) | |
return driver | |
# --- YOU ONLY NEED TO CARE FROM THIS LINE --- | |
# creating new driver to use proxy | |
pd = proxy_driver(ALL_PROXIES) | |
# code must be in a while loop with a try to keep trying with different proxies | |
running = True | |
while running: | |
try: | |
mycodehere() | |
# if statement to terminate loop if code working properly | |
# you need to modify condition_met | |
if condition_met: | |
running = False | |
# you | |
except: | |
new = ALL_PROXIES.pop() | |
# reassign driver if fail to switch proxy | |
pd = proxy_driver(ALL_PROXIES) | |
print("--- Switched proxy to: %s" % new) | |
time.sleep(1) |
tushortz can you please help me add sms bomber code into your code which changes its proxies . I tried but its not working !
Thanks!
from selenium import webdriver
from selenium.webdriver.chrome.options import DesiredCapabilities
from selenium.webdriver.common.proxy import Proxy, ProxyType
import time
PATH = "E:\SeleniumProject\chromedriver.exe"
co = webdriver.ChromeOptions()
co.add_argument("log-level=3")
co.add_argument("--headless")
def get_proxies(co=co):
driver = webdriver.Chrome(options=co)
driver.get("https://free-proxy-list.net/")
PROXIES = []
proxies = driver.find_elements_by_css_selector("tr[role='row']")
for p in proxies:
result = p.text.split(" ")
if result[-1] == "yes":
PROXIES.append(result[0]+":"+result[1])
driver.close()
# print(PROXIES)
return PROXIES
ALL_PROXIES = get_proxies()
def proxy_driver(PROXIES, co=co):
prox = Proxy()
if PROXIES:
pxy = PROXIES[-1]
else:
print("--- Proxies used up (%s)" % len(PROXIES))
PROXIES = get_proxies()
prox.proxy_type = ProxyType.MANUAL
prox.http_proxy = pxy
prox.ssl_proxy = pxy
capabilities = webdriver.DesiredCapabilities.CHROME
prox.add_to_capabilities(capabilities)
driver = webdriver.Chrome(options=co, desired_capabilities=capabilities)
return driver
def smsBomber():
browser1 = proxy_driver(ALL_PROXIES)
mobile_number = "6239027206"
frequency = 2
for i in range(frequency):
# try:
# browser1.get('https://www.flipkart.com/account/login?ret =/')
# number = browser1.find_element_by_class_name('_2zrpKA')
# number.send_keys(mobile_number)
# forgot = browser1.find_element_by_link_text('Forgot?')
# forgot.click()
# time.sleep(3)
# except:
# pass
try:
browser1.get('https://www.oyorooms.com/login?country=&retUrl=/')
number = browser2.find_element_by_class_name('textTelInput__input')
number.send_keys(mobile_number)
verify = browser2.find_element_by_class_name('loginCard__button')
verify.click()
time.sleep(3)
except:
pass
running = True
while running:
try:
smsBomber(browser1)
browser1.quit()
except:
new = ALL_PROXIES.pop()
pd = proxy_driver(ALL_PROXIES)
should i replace all instances of my own "driver" with "pd"?
co = webdriver.ChromeOptions()
co.add_argument("log-level=3")
co.add_argument("--headless")
def get_proxies(co=co):
driver = webdriver.Chrome(chrome_options=co,executable_path=ChromeDriverManager().install())
driver.get("https://free-proxy-list.net/")
PROXIES = []
trs = driver.find_elements_by_tag_name("tr")
for tr in trs:
tds = tr.find_elements_by_tag_name("td")
if tds[-2].text == "yes":
PROXIES.append(tds[0].text+":"+tds[1].text)
print(PROXIES)
driver.close()
return PROXIES
ALL_PROXIES = get_proxies()
print(ALL_PROXIES)
def proxy_driver(PROXIES, co=co):
prox = Proxy()
if len(PROXIES) < 1:
print("--- Proxies used up (%s)" % len(PROXIES))
PROXIES = get_proxies()
print(PROXIES)
pxy = PROXIES[-1]
prox.proxy_type = ProxyType.MANUAL
prox.http_proxy = pxy
prox.ssl_proxy = pxy
capabilities = webdriver.DesiredCapabilities.CHROME
prox.add_to_capabilities(capabilities)
driver = webdriver.Chrome(chrome_options=co, desired_capabilities=capabilities,executable_path=ChromeDriverManager().install())
return driver
This works for me guys, thanks tushortz for the script!
glad it helped
Why don't you try like the following way instead:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
import requests
from bs4 import BeautifulSoup
link = 'https://stackoverflow.com/questions/tagged/web-scraping'
def filter_proxies():
response = requests.get('https://www.sslproxies.org/')
soup = BeautifulSoup(response.text,"html.parser")
proxies = []
for item in soup.select("table.table tbody tr"):
if not item.select_one("td"):break
ip = item.select_one("td").text
port = item.select_one("td:nth-of-type(2)").text
proxies.append(f"{ip}:{port}")
return proxies
def create_proxy_driver(PROXY):
options = Options()
options.add_argument("--headless")
options.add_argument(f'--proxy-server={PROXY}')
driver = webdriver.Chrome(options=options)
return driver
def get_content(ALL_PROXIES,driver):
while True:
try:
driver.get(link)
title = driver.find_element(By.CSS_SELECTOR,"h3.s-post-summary--content-title > a").text
if title:
driver.quit()
return title
except Exception as e:
driver.quit()
if not ALL_PROXIES:
print("Proxies used up (%s)" % len(ALL_PROXIES))
ALL_PROXIES = filter_proxies()
new_proxy = ALL_PROXIES.pop()
driver = create_proxy_driver(new_proxy)
print("proxy being used: %s" % new_proxy)
time.sleep(1)
if __name__ == '__main__':
ALL_PROXIES = filter_proxies()
new_proxy = ALL_PROXIES.pop()
driver = create_proxy_driver(new_proxy)
print(get_content(ALL_PROXIES,driver))
i've updated the code. Sorry guys didn't even know that this script was being used