Surf website hiding your IP - Python & Selenium

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

driver = webdriver.Chrome(chrome_options=options, executable_path=r'/home/priyan/software/geckodriver-v0.26.0-linux64/chromedriver')

driver.get("https://sslproxies.org/")

driver.execute_script("return arguments[0].scrollIntoView(true);", WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//table[@class='table table-striped table-bordered dataTable']//th[contains(., 'IP Address')]"))))

ips = [my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//table[@class='table table-striped table-bordered dataTable']//tbody//tr[@role='row']/td[position() = 1]")))]

ports = [my_elem.get_attribute("innerHTML") for my_elem in WebDriverWait(driver, 5).until(EC.visibility_of_all_elements_located((By.XPATH, "//table[@class='table table-striped table-bordered dataTable']//tbody//tr[@role='row']/td[position() = 2]")))]

driver.quit()
proxies = []
for i in range(0, len(ips)):
    proxies.append(ips[i] + ':' + ports[i])
print(proxies)
for i in range(0, len(proxies)):
    try:
        print("Proxy selected: {}".format(proxies[i]))
        options = webdriver.ChromeOptions()
        options.add_argument('--proxy-server={}'.format(proxies[i]))
        
        driver = webdriver.Chrome(options=options, executable_path=r'/home/priyan/software/geckodriver-v0.26.0-linux64/chromedriver')
        
        driver.get("https://www.whatismyip.com/proxy-check/?iref=home")
        
        if "Proxy Type" in WebDriverWait(driver, 5).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "p.card-text"))):
            break
    except Exception:
        driver.quit()
print("Proxy Invoked")

SkipAd programatically using Selenium - JAVA

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class ChromeLoader {
public static void main(String[] args) throws InterruptedException {

System.setProperty("webdriver.gecko.driver", "/home/priyan/software/geckodriver-v0.26.0-linux64/geckodriver");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches", new String[] { "enable-automation" });

WebDriver driver = new ChromeDriver(options);
driver.navigate().to("http://raboninco.com/147sk");
Thread.sleep(10000);
driver.findElement(By.id("skip_bu2tton")).click();;
Thread.sleep(10000);
driver.quit();
}
}

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>J4TL</groupId>
<artifactId>J4TL</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>${selenium.version}</version>
</dependency>

<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
</dependencies>
<properties>
<selenium.version>3.141.59</selenium.version>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

# GIT CHEAT SHEET


### Get help on the command line

> `$ git help <command>`

## CREATE

### Clone an existing repository

> `$ git clone [url]`

### Create a new local repository

> `$ git init`

## LOCAL CHANGES

### Changed files in your working directory

> `$ git status`

### Changes to tracked files

> `$ git diff`

### Add all current changes to the next commit (all changes, without deletions and without new files)

> `$ git add -A`
>
> `$ git add .`
>
> `$ git add u`

### Add some changes in \<file> to the next commit

> `$ git add -p <file>`

### Commit all local changes in tracked files and add commit message

> `$ git commit -a`
> 
> `$ git commit -am [message]`

### Commit previusly staged changes

> `git commit`

### Change the last commmit

> `$ git commit -amend`

## COMMIT HISTORY

### Show all commits, starting with newest

> `$ git log`

### Show changes over time for a specific file

> `$ git log -p <file>`

### Who changed what and when in \<file>

> `$ git blame <file>`

## BRANCHES & TAGS

### List all existing branches

> `$ git branch -av`

### Switch HEAD branch

> `$ git checkout <branch>`

### Create a new branch based on your current HEAD

> `$ git branch <new-branch>`
>
> `$ git checkout -b <new-branch>`

### Create a new tracking branch bases on a remote branch

> `$ git checkout -track <remote/branch>`

### Delete a local branch

> `$ git branch -d <branch>`

### Mark the current commit with a tag

> `$ git tag <tag-name>`

## UPDATE & PUBLISH

### List all existing branches

> `$ git remote -v`

### Show information about a remote

> `$ git remote show <remote>`

### Add new remote repository, named \<remote>

> `$ git remote add <shortname> <url>`

### Download all changes from \<remote>, but don't integrate into HEAD

> `$ git fetch <remote>`

### Download changes and directly merge/integrate into HEAD

> `$ git pull <remote> <branch>`

### Publish local changes on a remote

> `$ git push <remote> <branch>`

### Delete a branch on the remote

> `$ git branch -d <remote/branch>`

### Publish your tags

> `$ git push --tags`

## MERGE & REBASE

### Merge \<branch> into your current HEAD

> `$ git merge <branch>`

### Rebase your current HEAD onto \<branch> (Don't rebase publish commits)

> `$ git rebase <branch>`

### Abort a rebase

> `$ git rebase --abort`

### Use your configured merge tool to solve conflicts

> `$ git mergetool`

### Use your editor to manually solve conflicts and (after resolving) mark file as resolved

> `$ git add <resolved-file>`
>
> `$ git rm <resolved-file>`

## UNDO

### Discard all local changes in yout working directory

> `$ git reset --hard HEAD`
>
> `$ git reset`
>
> `$ git checkout .`
>
> `$ git clean -fdx`
>
> `$ git checkout -b develop~# develop`

### Discard local changes in a specific file

> `$ git checkout HEAD <file>`

### Revert a commit (by producing a new commit with contrary changes)

> `$ git revert <commit>`

### Reset your HEAD pointer to a previous commit and discard all changes since then, perserve all changes as unstaged changes and preserve uncommitted local changes

> `$ git reset --hard <commit>`
>
> `$ git reset <commit>`
>
> `$ git reset --keep <commit>`

## GIT FLOW

### Init git flow

> `$ git flow init`

### Start git flow feature

> `$ git flow feature start [feature-name]`

### Publish git flow feature

> `$ git flow feature publish [feature-name]`

### Finish git flow feature

> `$ git flow feature finish [feature-name]`

## Extra

### Delete .git folder

> `$ rm -rf .git`