-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathselenium_driver.py
More file actions
33 lines (28 loc) · 1.18 KB
/
selenium_driver.py
File metadata and controls
33 lines (28 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from seleniumwire import webdriver
from selenium.webdriver.chrome.options import Options
from urllib.parse import urlparse
import tldextract
from config import color_tag
def create_driver(user_url, proxy=None):
chrome_options = Options()
if user_url.startswith("https://"):
chrome_options.add_argument("--ignore-certificate-errors")
chrome_options.add_argument("--disable-web-security")
chrome_options.add_argument("--allow-running-insecure-content")
seleniumwire_options = {'verify_ssl': False}
if proxy:
seleniumwire_options['proxy'] = {
'http': proxy,
'https': proxy,
'no_proxy': 'localhost,127.0.0.1'
}
print(f"{color_tag('[info]')} Using proxy: {proxy}")
else:
print(f"{color_tag('[WAR]')} No proxy set, proceeding without proxy")
driver = webdriver.Chrome(seleniumwire_options=seleniumwire_options, options=chrome_options)
return driver
def request_in_scope(request, target_root_domain):
parsed = urlparse(request.url)
ext = tldextract.extract(parsed.netloc)
request_root_domain = f"{ext.domain}.{ext.suffix}"
return request_root_domain == target_root_domain