{"id":10822,"date":"2025-02-06T03:25:28","date_gmt":"2025-02-06T00:25:28","guid":{"rendered":"https:\/\/proxynet.io\/?p=10822"},"modified":"2025-02-06T03:27:49","modified_gmt":"2025-02-06T00:27:49","slug":"rotating-proxy-python","status":"publish","type":"post","link":"https:\/\/proxynet.io\/tr\/blog\/rotating-proxy-python","title":{"rendered":"Python&#8217;da Proxy&#8217;ler Nas\u0131l D\u00f6nd\u00fcr\u00fcl\u00fcr?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Python i\u015flemlerinizde IP listenizi s\u00fcrekli d\u00f6nd\u00fcrerek yani rotate ederek daha sa\u011fl\u0131kl\u0131 bir \u015fekilde IP adreslerinizi kullanabilir ve veri kaz\u0131ma i\u015flemlerinizde daha rahat istekler atabilirsiniz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Proxy adresleri IP adresinizi gizleyebilir, fakat birden fazla ayn\u0131 IP adresinden istek att\u0131\u011f\u0131n\u0131zda rate-limit dedi\u011fimiz kar\u015f\u0131 sitenin i\u015flem limitlerine tak\u0131l\u0131r ve kar\u015f\u0131 site sizi sald\u0131rgan olarak alg\u0131layaca\u011f\u0131 i\u00e7in IP adresiniz banlanabilir. E\u011fer <a href=\"http:\/\/proxynet.io\/tr\/rotating-proxy\" data-type=\"link\" data-id=\"http:\/\/proxynet.io\/tr\/rotating-proxy\">rotating proxy<\/a> kullanm\u0131yor, bunun yerine statik IP adreslerinden bir proxy havuzunuz varsa att\u0131\u011f\u0131n\u0131z web isteklerinde a\u015fa\u011f\u0131daki makalemizde sizlere IP adreslerini nas\u0131l kolay bir \u015fekilde d\u00f6nd\u00fcrebilece\u011finizi anlataca\u011f\u0131z. <\/p>\n\n\n\n<h2 id='rotating-proxy-nedir'  id=\"boomdevs_1\" class=\"wp-block-heading\">Rotating Proxy Nedir? <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Rotating proxy asl\u0131nda <a href=\"https:\/\/proxynet.io\/tr\/residential-proxy\" data-type=\"link\" data-id=\"https:\/\/proxynet.io\/tr\/residential-proxy\">Residential proxy<\/a> hizmetlerinde olan, genelde s\u00fcrekli d\u00f6nen IP adresleridir. Fakat baz\u0131 zamanlarda Residential proxy h\u0131zl\u0131 olmad\u0131\u011f\u0131nda veya elinde mevcutta bir IP listesi olan ki\u015filer kendi rotasyon k\u00fct\u00fcphanesini kullanarak IP adreslerini kulland\u0131\u011f\u0131 yaz\u0131l\u0131m\u0131n i\u00e7erisinde d\u00f6nd\u00fcrebilir. GB bazl\u0131 hesap yapmak istemeyen veya kendi IP adresleri bulunan ki\u015filer i\u00e7in bu asl\u0131nda daha uygun bir \u00e7\u00f6z\u00fcmd\u00fcr. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">IP rotasyonu, giden a\u011f istekleri i\u00e7in kullan\u0131lan IP adresini dinamik olarak de\u011fi\u015ftirme i\u015flemidir. IP de\u011fi\u015fimi genellikle her istekten sonra, d\u00fczenli aral\u0131klarla veya ihtiya\u00e7 duydu\u011funuzda ger\u00e7ekle\u015fir. IP rotasyonunun arkas\u0131ndaki fikir olduk\u00e7a basittir. Her web iste\u011fi i\u00e7in ayn\u0131 IP adresini kullanmak yerine, birden fazla IP aras\u0131nda ge\u00e7i\u015f yapars\u0131n\u0131z.<\/p>\n\n\n\n<h2 id='python-da-proxy-ler-nas\u0131l-d\u00f6nd\u00fcr\u00fcl\u00fcr'  id=\"boomdevs_2\" class=\"wp-block-heading\">Python&#8217;da Proxy&#8217;ler Nas\u0131l D\u00f6nd\u00fcr\u00fcl\u00fcr<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bu b\u00f6l\u00fcmde, Python&#8217;da proxy&#8217;leri d\u00f6nd\u00fcrme ile ilgili ad\u0131mlar\u0131 \u00f6\u011freneceksiniz. Proxy ba\u011flant\u0131s\u0131n\u0131 test etmek i\u00e7in, IP adresinizi d\u00f6nd\u00fcren bir u\u00e7 nokta olan https:\/\/httpbin.io\/ip&#8217;u kullanacaks\u0131n\u0131z. Ama \u00f6nce, ba\u015flang\u0131\u00e7 olarak ihtiyac\u0131m\u0131z olan gereksinimlere bakal\u0131m.<\/p>\n\n\n\n<h3 id='ad\u0131m-1-i\u0307htiyac\u0131m\u0131z-olan-\u015feyler'  id=\"boomdevs_3\" class=\"wp-block-heading\">Ad\u0131m 1: \u0130htiyac\u0131m\u0131z olan \u015feyler<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bu \u00f6\u011freticiyi takip etmek i\u00e7in, a\u015fa\u011f\u0131dakilerin makinenizde mevcut oldu\u011fundan emin olun:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.python.org\/downloads\/\" data-type=\"link\" data-id=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noopener\">Python3<\/a>: Baz\u0131 sistemlerde \u00f6nceden y\u00fcklenmi\u015ftir. Ancak, g\u00fcncel oldu\u011fundan emin olun (s\u00fcr\u00fcm 3+).<\/li>\n\n\n\n<li>Bir IDE: Bu e\u011fitim VS Code kullansa da, yine de tercih etti\u011finiz IDE ile takip edebilirsiniz.<\/li>\n\n\n\n<li>\u0130stekler: HTTP istemcisi olarak Python&#8217;un Requests&#8217;ini kullanacaks\u0131n\u0131z. Pip kullanarak y\u00fckleyin:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code><code>pip3 install requests<\/code><\/code><\/pre>\n\n\n\n<h3 id='ad\u0131m-2-proxy-sat\u0131n-al\u0131n'  id=\"boomdevs_4\" class=\"wp-block-heading\">Ad\u0131m 2: Proxy Sat\u0131n Al\u0131n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Paketimiz y\u00fcklendiyse \u015fimdi haz\u0131r\u0131z. Daha sonra bir proxy listesine ihtiyac\u0131n\u0131z olacak. <a href=\"https:\/\/proxynet.io\/tr\/data-scraping\" data-type=\"link\" data-id=\"https:\/\/proxynet.io\/tr\/data-scraping\">Web Scraping<\/a> yapaca\u011f\u0131n\u0131z web sitesine g\u00f6re istek ataca\u011f\u0131n\u0131z sitelere g\u00f6re diledi\u011finiz lokasyon proxy tercih edebilmeniz i\u00e7in Proxynet Self-Servis m\u00fc\u015fteri paneline g\u00f6z atabilir iste\u011fe g\u00f6re <a href=\"https:\/\/proxynet.io\/tr\/ipv4\" data-type=\"link\" data-id=\"https:\/\/proxynet.io\/tr\/ipv4\">IPv4 <\/a>veya <a href=\"https:\/\/proxynet.io\/tr\/ipv6\" data-type=\"link\" data-id=\"https:\/\/proxynet.io\/tr\/ipv6\">IPv6 <\/a>proxy sat\u0131n alabilirsiniz. Bunun i\u00e7in her zaman \u00f6ncesinde sat\u0131\u015f temsilcisi ile ileti\u015fime ge\u00e7ebilirsiniz. <\/p>\n\n\n\n<h3 id='ad\u0131m-3-proxy-olmadan-bir-istek-g\u00f6nderin'  id=\"boomdevs_5\" class=\"wp-block-heading\">Ad\u0131m 3: Proxy Olmadan bir istek g\u00f6nderin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Varsay\u0131lan olarak, bir istek belirtmezseniz yerel IP&#8217;nizi kullanacakt\u0131r. Kontrol etmek i\u00e7in, hedef test sitesine proxy olmadan bir ilk istek g\u00f6nderelim.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0130stekler kitapl\u0131\u011f\u0131n\u0131 i\u00e7e aktar\u0131n, hedef siteyi ziyaret edin ve yan\u0131t\u0131n\u0131 yazd\u0131r\u0131n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># pip3 install requests\nimport requests\n\n# send a request to the test endpoint\nresponse = requests.get(\"https:\/\/httpbin.io\/ip\")\n\n# validate the response\nif response.status_code != 200:\n    print(f\"The request failed with {response.status_code}\")\nelse:\n    print(response.text)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Yukar\u0131daki betik varsay\u0131lan yerel IP adresinizin \u00e7\u0131kt\u0131s\u0131n\u0131 verecektir. \u015eimdi, Python&#8217;da bir proxy kurmak i\u00e7in bunu geli\u015ftirelim.<\/p>\n\n\n\n<h3 id='ad\u0131m-4-proxy-ile-bir-istek-atal\u0131m'  id=\"boomdevs_6\" class=\"wp-block-heading\">Ad\u0131m 4: Proxy ile bir istek atal\u0131m<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">HTTP ve HTTPS protokollerini bir s\u00f6zl\u00fckte belirterek mevcut kodunuzu proxy adresi ile g\u00fcncelleyin. Ard\u0131ndan, iste\u011finizi bunun \u00fczerinden y\u00f6nlendirin:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># pip3 install requests\nimport requests\n\n# specify the proxy server address\nproxies = {\n    \"http\": \"http:\/\/proxy.proxynet.io:60001\",\n    \"https\": \"http:\/\/proxy.proxynet.io:60001\",\n}\n\n# send a request to the test endpoint\nresponse = requests.get(\n    \"https:\/\/httpbin.io\/ip\",\n    proxies=proxies,\n)\n\n# validate the response\nif response.status_code != 200:\n    print(f\"The request failed with {response.status_code}\")\nelse:\n    print(response.text)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kodu iletti\u011finizde proxy adresinin arkas\u0131ndaki IP adresinin sonucunu a\u015fa\u011f\u0131daki \u015fekilde verecektir. Proxy olmadan att\u0131\u011f\u0131n\u0131z istek ile proxy varken att\u0131\u011f\u0131n\u0131z istekde IP adresleri farkl\u0131ysa iste\u011finiz ba\u015far\u0131l\u0131 art\u0131k proxy kullan\u0131labilir demektir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"origin\": \"120.36.89.225:30223\"\n}<\/code><\/pre>\n\n\n\n<h3 id='ad\u0131m-5-rotating-proxy-listesi-olu\u015ftural\u0131m'  id=\"boomdevs_7\" class=\"wp-block-heading\">Ad\u0131m 5: Rotating proxy listesi olu\u015ftural\u0131m<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sitemizden sat\u0131n alm\u0131\u015f oldu\u011funuz proxyleri proxy-list.txt gibi bir dosyaya kaydedebilirsiniz. Bu IP adresleri alt alta \u015fu \u015fekilde olmal\u0131d\u0131r:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>proxy.proxynet.io:60001\nproxy.proxynet.io:6002<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Proxy&#8217;leri iki \u015fekilde d\u00f6nd\u00fcrebilirsiniz:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Proxy havuzunu s\u0131rayla yineleyin.<\/li>\n\n\n\n<li>Proxy havuzunda rastgele yineleme.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A\u015fa\u011f\u0131da her iki y\u00f6ntemi de nas\u0131l uygulayaca\u011f\u0131n\u0131z\u0131 g\u00f6sterece\u011fiz.<\/p>\n\n\n\n<h4 id='proxy-listesinden-s\u0131rayla-se\u00e7erek'  id=\"boomdevs_8\" class=\"wp-block-heading\">Proxy listesinden s\u0131rayla se\u00e7erek:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">S\u0131ral\u0131 proxy rotasyonu, proxy&#8217;ler aras\u0131nda e\u015fit trafik da\u011f\u0131l\u0131m\u0131 i\u00e7in uygundur. K\u00fc\u00e7\u00fck bir proxy havuzunuz varsa ve baz\u0131 proxy&#8217;leri di\u011ferlerine g\u00f6re a\u015f\u0131r\u0131 kullanmaktan ka\u00e7\u0131nmak istiyorsan\u0131z kullan\u0131\u015fl\u0131 olabilir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bununla birlikte, bu y\u00f6ntemin s\u0131n\u0131rlamas\u0131, hedef sunucunun bir model alg\u0131layabilmesi ve proxy havuzunu yasaklayabilmesidir. Proxy&#8217;leri s\u0131rayla d\u00f6nd\u00fcrmek i\u00e7in, listede do\u011fru s\u0131rada d\u00f6ng\u00fc yapacaks\u0131n\u0131z. \u015eimdi bunu uygulayal\u0131m!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># pip3 install requests\nimport requests\nfrom itertools import cycle\n\n# read the proxies from the proxy list file\nproxies_list = open(\"proxies_list.txt\", \"r\").read().strip().split(\"\\n\")\n\n# create a proxy generator\nproxy_pool = cycle(proxies_list)\n\n# iterate through the proxy list\nfor _ in range(4):\n\n    # get the next proxy from the generator\n    proxy = next(proxy_pool)\n\n    # prepare the proxy address\n    proxies = {\n        \"http\": f\"http:\/\/{proxy}\",\n        \"https\": f\"http:\/\/{proxy}\",\n    }\n\n    # send a request to the target site with the proxy\n    response = requests.get(\n        \"https:\/\/httpbin.io\/ip\",\n        proxies=proxies,\n    )\n\n    if response.status_code != 200:\n        print(f\"The request failed with {response.status_code}\")\n    else:\n        print(response.text)<\/code><\/pre>\n\n\n\n<h4 id='proxy-listesinden-random-bir-\u015fekilde-se\u00e7'  id=\"boomdevs_9\" class=\"wp-block-heading\">Proxy listesinden random bir \u015fekilde se\u00e7:<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Proxy rastgelele\u015ftirme, hedef sunucunun iste\u011finizdeki bir kal\u0131b\u0131 alg\u0131lamas\u0131n\u0131 \u00f6nleyebilir. Bu y\u00f6ntem, proxy&#8217;lerin havuzdan belirlenmemi\u015f bir \u015fekilde se\u00e7ilmesini i\u00e7erir. Ancak bir dezavantaj\u0131, baz\u0131 proxy&#8217;lerin di\u011ferlerine k\u0131yasla a\u015f\u0131r\u0131 kullan\u0131labilmesidir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Proxy&#8217;leri rastgele hale getirmek i\u00e7in \u00f6nceki kodu de\u011fi\u015ftirelim. Proxy listesini do\u011frudan for d\u00f6ng\u00fcs\u00fc i\u00e7inde rastgele hale getirmek i\u00e7in Python&#8217;un yerle\u015fik random.choice y\u00f6ntemini kullan\u0131n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># pip3 install requests\nimport requests\nimport random\n\n# read the proxies from the proxy list file\nproxies_list = open(\"proxies_list.txt\", \"r\").read().strip().split(\"\\n\")\n\n# iterate through the proxy list\nfor _ in range(4):\n    # choose a proxy at random from the list\n    random_proxy = random.choice(proxies_list)\n\n    # prepare the proxy address\n    proxies = {\n        \"http\": f\"http:\/\/{random_proxy}\",\n        \"https\": f\"http:\/\/{random_proxy}\",\n    }\n\n    # send a request to the target site with the proxy\n    response = requests.get(\n        \"https:\/\/httpbin.io\/ip\",\n        proxies=proxies,\n    )\n\n    if response.status_code != 200:\n        print(f\"The request failed with {response.status_code}\")\n    else:\n        print(response.text)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Yukar\u0131da iletti\u011fimiz iki y\u00f6ntem ile istek atmak istedi\u011finiz web sitelerinden veri \u00e7ekebilir veya istek g\u00f6nderebilirsiniz. <\/p>\n\n\n\n<h2 id='farkl\u0131-user-agent-ler-kullan\u0131n'  id=\"boomdevs_10\" class=\"wp-block-heading\">Farkl\u0131 User-Agent&#8217;ler kullan\u0131n<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kodunuzun i\u00e7erisinde farkl\u0131 farkl\u0131 User-agentler g\u00f6ndermeniz sizin i\u00e7in her zaman daha faydal\u0131 olacakt\u0131r. Ayn\u0131 zamanda bunu otomatikle\u015ftirmek istiyorsan\u0131z fake-useragent gibi k\u00fct\u00fcphanelere g\u00f6z atabilirsiniz.<\/p>\n\n\n\n<h2 id='sonu\u00e7'  id=\"boomdevs_11\" class=\"wp-block-heading\">Sonu\u00e7<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Python sonu\u00e7 olarak veri kaz\u0131ma i\u015flemleri i\u00e7in ideal bir \u00e7\u00f6z\u00fcm. \u00dccretsiz k\u00fct\u00fcphaneler ile veri kaz\u0131ma i\u015flemlerinizi dahada efektif hale getirebilir ve sorunsuz \u015fekilde \u00e7al\u0131\u015ft\u0131rabilirsiniz. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python i\u015flemlerinizde IP listenizi s\u00fcrekli d\u00f6nd\u00fcrerek yani rotate ederek daha sa\u011fl\u0131kl\u0131 bir \u015fekilde IP adreslerinizi kullanabilir ve veri kaz\u0131ma i\u015flemlerinizde daha rahat [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":10826,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[208,205],"tags":[],"class_list":["post-10822","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proxies","category-tutorial"],"_links":{"self":[{"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/posts\/10822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/comments?post=10822"}],"version-history":[{"count":4,"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/posts\/10822\/revisions"}],"predecessor-version":[{"id":10829,"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/posts\/10822\/revisions\/10829"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/media\/10826"}],"wp:attachment":[{"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/media?parent=10822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/categories?post=10822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/proxynet.io\/tr\/wp-json\/wp\/v2\/tags?post=10822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}