berkingulay adlı üyeden alıntı: mesajı görüntüle
tanımamazlık var gibi sanki selenium tunnelin açıldığını anlamıyor ama proxy çalıştıgından eminseniz daha uzman biri bakmalı koda ama burada daha selenium kelimesinin anlamını bilen birinin dahi olduğunu düşünmüyorum keske böyle yazmak zorunda kalmasam ama üzülerek söylüyorum yanlıs yerdesiniz cami tuvaletlerinin pisliğini anlatmak veya kumarı nasıl bırakacağınızı merak ediyorsanız ha pardon bir de ota suya ebook yazan biriyseniz burası sizlik bir yer.
taylanweb adlı üyeden alıntı: mesajı görüntüle
- proxy.txt içerik ip : port : username : password
- aynı dizinde chromedriver.exe dosyan olsun veya kodu istediğin gibi değiştir. güncelle

Şuan aktif çalışıyor " --headless " modunda.


import json
import random
import tempfile
import os
import zipfile
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

class ProxyManager:
    def __init__(self, proxy_file):
        self.proxy_file = proxy_file
        self.proxy_info = self.load_random_proxy()

    def load_random_proxy(self):
        with open(self.proxy_file, 'r') as file:
            proxies = file.readlines()
        proxies = [proxy.strip() for proxy in proxies if proxy.strip()]
        return random.choice(proxies)

    def get_proxy_parts(self):
        proxy_parts = self.proxy_info.split(':')
        if len(proxy_parts) == 4:
            return proxy_parts
        else:
            raise ValueError("Proxy bilgileri ip:port:username:password formatında olmalıdır.")

class ChromeProxyExtension:
    def __init__(self, ip, port, username, password):
        self.ip = ip
        self.port = port
        self.username = username
        self.password = password
        self.temp_dir = tempfile.TemporaryDirectory()

    def create_extension(self):
        proxies_extension = {
            "version": "1.0.0",
            "manifest_version": 2,
            "name": "Chrome Proxy",
            "permissions": [
                "proxy",
                "tabs",
                "unlimitedStorage",
                "storage",
                "<all_urls>",
                "webRequest",
                "webRequestBlocking"
            ],
            "background": {
                "scripts": ["background.js"]
            },
            "minimum_chrome_version": "22.0.0"
        }

        background_js = f"""
        var config = {{
            mode: "fixed_servers",
            rules: {{
                singleProxy: {{
                    scheme: "http",
                    host: "{self.ip}",
                    port: parseInt({self.port})
                }},
                bypassList: ["localhost"]
            }}
        }};
        chrome.proxy.settings.set({{value: config, scope: "regular"}}, function() {{}});
        function callbackFn(details) {{
            return {{
                authCredentials: {{
                    username: "{self.username}",
                    password: "{self.password}"
                }}
            }};
        }}
        chrome.webRequest.onAuthRequired.addListener(
            callbackFn,
            {{urls: ["<all_urls>"]}},
            ['blocking']
        );
        """

        manifest_path = os.path.join(self.temp_dir.name, 'manifest.json')
        background_path = os.path.join(self.temp_dir.name, 'background.js')

        with open(manifest_path, 'w') as file:
            json.dump(proxies_extension, file)

        with open(background_path, 'w') as file:
            file.write(background_js)

        zip_path = os.path.join(self.temp_dir.name, 'proxy_extension.zip')
        with zipfile.ZipFile(zip_path, 'w') as zipf:
            zipf.write(manifest_path, 'manifest.json')
            zipf.write(background_path, 'background.js')

        return zip_path

class WebDriverManager:
    def __init__(self, driver_path, extension_path, website):
        self.driver_path = driver_path
        self.extension_path = extension_path
        self.website = website

    def start_driver(self):
        chrome_options = webdriver.ChromeOptions()
        chrome_options.add_argument("--headless")
        chrome_options.add_argument(f"--load-extension={self.extension_path}")

        chrome_service = Service(self.driver_path)
        self.driver = webdriver.Chrome(service=chrome_service, options=chrome_options)

    def fetch_website(self):
        self.driver.get(self.website)
        return self.driver.page_source

    def quit_driver(self):
        self.driver.quit()

def main():
    proxy_file = 'proxy.txt'
    driver_path = os.path.join(os.getcwd(), 'chromedriver.exe')
    website = 'https://ip.smartproxy.com/json'

    proxy_manager = ProxyManager(proxy_file)
    ip, port, username, password = proxy_manager.get_proxy_parts()

    extension_creator = ChromeProxyExtension(ip, port, username, password)
    extension_path = extension_creator.create_extension()

    web_driver_manager = WebDriverManager(driver_path, extension_path, website)
    web_driver_manager.start_driver()
    page_source = web_driver_manager.fetch_website()
    print(page_source)
    web_driver_manager.quit_driver()

if __name__ == "__main__":
    main()
soylenmezsmt adlı üyeden alıntı: mesajı görüntüle
İşte profesör konuya girdi
taylanweb adlı üyeden alıntı: mesajı görüntüle
Sanırım Proxy kaynaklı bir sorununuz var yada başka bir sorun çalışıyor şuan proxylerimle test ettim. sizde bir test edin isterseniz. aşağıdaki proxyler ile.




rootberke adlı üyeden alıntı: mesajı görüntüle
proxy'lerin calısıp calısmadıgını bu kod ile kontrol edin ondan sonra kodunuzu tamamlayın.


<?php
error_reporting(0);
ini_set("display_errors", 0);
$proxy = "45.127.248.127";
$proxyport = "5128";
$url = "http://httpbin.org/ip";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxyport);
$response = curl_exec($ch);
echo $response;

?>
Misafir adlı üyeden alıntı: mesajı görüntüle
Emin değilim ama

burayı değiştir
proxies_extension = proxies(username, password, endpoint, port)
chrome_options.add_extension(proxies_extension)
Bu şekilde
proxies_extension = proxies(username, password, endpoint, port)
chrome_options.add_argument(f'--proxy-server=http://{proxies_extension}')
Bir dene...

Birde proxy doğrumu bir kontrol et... yanlışlıkla ip'ye username'i password'a port'u vb. gönderiyor olabilirsin.

Sorun çözüldü hepinize ilginizden dolayı çok teşekkür ederim.

Çözümü anlatmak gerekirse aslında sorun kodda değil proxy adreslerimdeymiş ipv6 olduğu için sorun yaratıyormuş ipv4 proxylerde hiç bir sorun olmadan çalışıyor.
Kullandığım ilk yönteme geri dönerek eklentili bir şekilde çalıştırıyorum şu an kullandığım proxy kodunun benzerini de zaten @taylanweb; hocam atmıştı onu da doğru cevap olarak işaretledim.
ipv6'da şu şekilde kullanılması öneriliyor: [ip_address]
ipv4'de ise şöyle: ip_address

ama halen ipv6'da çalıştıramadım bu sorun yaratacak gibi çünkü kullanıcıların hepsi ipv4 kullanmayabilir ama ipv4 kullanarak sorun giderilmiş oldu.
İlgilenen herkese tekrar tekrar teşekkür ederim