Thay đổi Proxy bằng Python

Có cách nào đơn giản có thể thay đổi được proxy bằng Python không ạ?

Xài module selenium thử

from selenium.webdriver.common.proxy import Proxy, ProxyType
from selenium import webdriver
DRIVER = webdriver.Firefox(proxy=Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': proxy,
    'ftpProxy': proxy,
    'sslProxy': proxy,
    'noProxy': ''
}))

Nó báo lỗi ạ

1 Like
from selenium import webdriver

PROXY = "183.91.3.146:53281"

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % PROXY)

chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get("http://whatismyipaddress.com")

e cũng có thử dùng cách này, nhưng cũng bị lỗi như bên trên

2 Likes

Thiếu geckodriver rồi, download unzip

driver = webdriver.Firefox(executable_path='/your/path/to/geckodriver')
proxy = "183.91.3.146:53281"
from selenium.webdriver.common.proxy import Proxy, ProxyType
from selenium import webdriver
driver = webdriver.Firefox()
DRIVER = webdriver.Firefox(executable_path='geckodriver.exe', proxy=Proxy({
    'proxyType': ProxyType.MANUAL,
    'httpProxy': proxy,
    'ftpProxy': proxy,
    'sslProxy': proxy,
    'noProxy': ''
}))

Chương trình không báo lỗi như Porxy thì vẫn chưa đổi ạ.

1 Like

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", "123.30.238.16")
profile.set_preference("network.proxy.http_port", 3128)
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile=profile)

driver.get("http://whatismyipaddress.com/")

Trước

Sau

Quan trọng là phải tìm đc proxy còn sống

3 Likes

one more time thank you :smiley:

1 Like

à a ơi! Thế còn chrome e phải làm như thế nào ạ? :smile:

1 Like
from selenium import webdriver

PROXY = "123.30.238.16:3128" # IP:PORT or HOST:PORT

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=%s' % PROXY)

chrome = webdriver.Chrome(chrome_options=chrome_options)
chrome.get("http://whatismyipaddress.com")


Nhớ down https://chromedriver.storage.googleapis.com/index.html?path=2.29/ về

Đây là thứ e cần ^^ . E cám ơn

1 Like

bác ơi nếu giờ muốn cài proxy trực tiếp trên chrome thì làm thế nào vậy ạ

https://chrome.google.com/webstore/detail/proxy-switcher-and-manage/onnfghpihccifgojkpnnncpagjcdbjod dùng extension của chrome là đc bạn

1 Like

hello anh, đoạn code này em đã chạy được, nhưng địa chỉ IP của chorme vẫn ko đổi thành: 123.30.238.16:3128
anh có thể support em ko?

Topic khá cũ rồi, nhưng mình muốn chia sẻ code ở đây, mong có thể giúp các bạn khác:

def get_proxies():
    url = 'https://free-proxy-list.net/' # Trang Web lấy Proxy
    response = requests.get(url)
    parser = fromstring(response.text)
    proxies = set()
    for i in parser.xpath('//tbody/tr')[:250]:

        # Kiểm tra xem: Có Anonymous không? Có SSL không?
        if i.xpath('.//td[7][contains(text(),"yes")]') and i.xpath('.//td[5][contains(text(),"anonymous")]'):

            # Ghép nối IP và Port thành Proxy
            proxy = ":".join([i.xpath('.//td[1]/text()')[0], i.xpath('.//td[2]/text()')[0]])
            proxies.add(proxy)

    return proxies

Cụ thể, đoạn code trên làm 3 việc:
1. Truy cập vào Website cung cấp Proxy miễn phí: https://free-proxy-list.net/.
2. Kiểm tra xem Proxy có sử dụng SSL và là Anonymous không.
3. Ghép IP và Port vào thành Proxy hoàn chỉnh, sau đó đẩy vào Proxies Array.

Sau đó, đặt vòng lặp for loop để xoay vòng Proxy:

for proxy in proxies:
    ...
    chrome_options.add_argument('--proxy-server={}'.format(proxy))
    ...

Các bạn muốn đổi Website Proxy thì chỉ cần chỉnh phần lựa chọn Element trên Website cần lấy Proxy thôi.

Hi vọng giúp đỡ được những ai đang quan tâm đến việc thay đổi Proxy này.

2 Likes

em cám ơn anh đã chia sẻ, nhưng em gặp một số bug sau:

Error 1: NameError: name ‘fromstring’ is not defined
=> fixed: https://stackoverflow.com/questions/13046240/parseerror-not-well-formed-invalid-token-using-celementtree?answertab=oldest#tab-top

Error 2: AttributeError: ‘lxml.etree.XMLParser’ object has no attribute ‘xpath’
=> ?

Anh có thể send cho em code anh test được ko ạ? thanks anh.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?