BS4 ile proxyleri çekmek nasıl yapabilirim yardımcı olurmusunuz?

http://proxydb.net/?protocol=https&country=TR

def GetProxy():
    url = 'https://free-proxy-list.net/'
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'html.parser')

    div = soup.find('div', class_='table-responsive')
    tbody = div.find("tbody")
    proxies = tbody.find_all("tr")
    proxy = proxies[randint(0, len(proxies) - 1)]

    proxy_ip = proxy.find_all("td")[0].get_text()
    proxy_port = proxy.find_all("td")[1].get_text()

    return proxy_ip + ":" + proxy_port

böyle bir kod var elimde yardımcı olursanız sevinirim?

nasıl çekebilirim bu linkteki proxyleri?

Sitedeki proxyler <textarea> etiketi içindeler. Şöyle yapabilirsiniz:

from requests import get
from bs4 import BeautifulSoup as BS


def get_proxy(url):
    return BS(
        get(url).content, "html.parser"
    ).find("textarea").text.split("\n")[3:-1]


print(get_proxy(url="https://free-proxy-list.net/"))

peki ben bu proxyleri rastgele çekmek istiyorum ama sürekli farklı ip çekmek istiyorum nasıl yapabilirim?

Proxy List - ProxyDB şu siteden çekmek istiyordum yanlış telavuz ettim özür dilerim

def GetProxy():
    url = 'http://proxydb.net/?protocol=https&country=TR'
    r = requests.get(url)
    soup = BeautifulSoup(r.content, "lxml")

    div = soup.find('div', class_='table-responsive')
    table = div.find('div', {"id" : 'TableWithRules'})
    tbody = table.find("tbody")
    proxies = tbody.find_all("tr")
    proxy = proxies[randint(0, len(proxies) - 1)]

    proxy_ip = proxy.find_all("td")[0].get_text()

    return proxy_ip + ":" + proxy_port

print(GetProxy())

yaptım ama find hatası almaktayım.

hata şu :

table = div.find('div', {"id" : 'TableWithRules'})
AttributeError: 'NoneType' object has no attribute 'find'
def GetProxy():
    url = 'http://proxydb.net/?protocol=https&country=TR'
    r = requests.get(url)
    soup = BeautifulSoup(r.content, "lxml")

    div = soup.find('div', class_='table-responsive')
    tbody = div.find("tbody")
    proxies = tbody.find_all("tr")
    proxy = proxies[randint(0, len(proxies) - 1)]

    proxy_ip = proxy.find_all("td")[0].get_text()

    return proxy_ip + ":" + proxy_port

yukarıdaki gibi denedim bu sefer

tbody = div.find("tbody")
AttributeError: 'NoneType' object has no attribute 'find'

hatası almaktayım

Siz souptan dönen değere baktınız mı? Sadece "\n" dönüyor.

from requests import get
from bs4 import BeautifulSoup as BS


def get_proxy(url):
    return BS(get(url).content, "lxml")


print(get_proxy(url="http://proxydb.net/?protocol=https&country=TR"))

boş dönüyor verdiğiniz kod denedim ama hiç bir çıktı vermedi malesef

Vermeyecek zaten. O sayfa recaptcha tarafından korunuyor. Ama şöyle yapabilirsiniz: Sayfa bilgilerini bir html dosyasına yazdırırsınız, sonra da linkleri o html sayfasından çıkarırsınız.

Örnek olsun diye paylaşıyorum. Sayfayı kaydettikten sonra aşağıdaki kodu çalıştırın:

from bs4 import BeautifulSoup as BS


def get_proxy():
    with open("proxy.html") as f:
        return [i.text for i in BS(f.read(), "html.parser").find("tbody").find_all("a")]


print(get_proxy())

Şöyle bir çıktı almanız lazım:

['176.235.137.2:8080', '176.235.80.110:9090', '217.195.203.29:3131', '95.0.66.71:1976', '85.105.139.53:8090', '91.93.163.188:8080', '176.235.80.103:9090', '91.93.135.113:8080', '78.111.97.182:3142', '80.93.213.213:3136', '78.188.186.180:8080', '193.36.61.203:8000', '88.255.60.220:8080', '91.93.73.227:7070', '176.236.120.147:8080']

tekrar deneyim kusura bakmayın sizi de uğraştırmaktayım

Traceback (most recent call last):
  File "bcvcv6.py", line 225, in <module>
    print(get_proxy())
  File "bcvcv6.py", line 49, in get_proxy
    with open("proxy.html") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'proxy.html'

böyle bir şey çıktı benim özelden attığınızı denedim olmadı bu linkten rastgele proxy çekmek amacım

http://proxydb.net/?protocol=https&country=TR

Siz tarayıcınızı kullanarak sayfanın kaynak kodlarını açın, bütün kaynak kodunu kopyalayın, proxy.html isminde bir dosyaya kaydedin. Ondan sonra bu kodu çalıştırın, aksi taktirde böyle bir dosya sizin sisteminizde olmadığı için hata alırsınız.

Listeyi aldıktan sonra, random kütüphanesi ile rastgele proxy çekebilirsiniz zaten. Amaç proxy listesini almak. Ama sitenin o sayfası koruma altında olduğu için requests kullanamıyoruz.

anladım peki bir başka site bulsam
size dönüş yapsam
olur mu?

tabi müsaitseniz?
sizde zamanınız varsa?

Yarın (yani gün içerisinde) dönüş yapsam olur mu?

tamam olur ama unutmayın lütfen ben bir sistem kurmaktayım ve bu kod bana acil lazım kredili sistem yapıyorum en son 3 hafta önce hatta formu ben kirletmiştim

bcvc 10 version amacım türkiye proxyleri çekmek

Tamam, gün içerisinde müsait olduğumda yardımcı olmaya çalışım. Siz bulacağınız sitelerden proxyleri çekmeye çalışın, çözemediğiniz bir sorun oluşursa sorun, ben olmazsam başka arkadaşlar yardım etmeye çalışırlar.

Ne demek istediğinizi anlamadım.

Anladım.