• 03-08-2024, 20:07:59
    #10
    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.




    Yardımınız için çok teşekkür ederim göndermiş olduğunuz proxyler test kodunda sorunsuz çalışıyor fakat https isteği gerektiren ana kodda maalesef çalışmıyor bu şekilde sorunun proxy kaynaklı değil kod kaynaklı olduğunu anlamış oldum vermiş olduğunuz kodu eklediğimde daha önce olduğu gibi eklenti yüklenemedi hatası veriyor farklı çözüm yolu arayacağım ilginiz için gerçekten çok teşekkür ederim
  • 03-08-2024, 20:26:57
    #11
    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;
    
    ?>
  • 03-08-2024, 20:28:26
    #12
    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;
    
    ?>
    Teşekkür ederim yukarıda belirttiğim gibi proxyleri test kodumla test ettim ve çalışıyor sorun kod kaynaklı çözüm için araştırmam devam ediyor sonucu buraya da yazacağım
  • 03-08-2024, 20:31:18
    #13
    mebularts adlı üyeden alıntı: mesajı görüntüle
    Teşekkür ederim yukarıda belirttiğim gibi proxyleri test kodumla test ettim ve çalışıyor sorun kod kaynaklı çözüm için araştırmam devam ediyor sonucu buraya da yazacağım
    cok iyi olur php ile yardım'a ihtiyacınız olursa iletisim adresi bırakınız.
  • 04-08-2024, 01:08:21
    #14
    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.
  • 04-08-2024, 01:30:42
    #15
    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