Kimse yapmadan ben yapayım dedim
Belirtilen bir konudaki çekiliş konusunda katılan kullanıcıları topluyor ve bu kullanıcılar arasından rastgele bir kazanan seçiyor.
import random
import requests
from bs4 import BeautifulSoup
def get_usernames(url, page_count=1):
usernames = []
selected_usernames = set()
for page in range(1, page_count + 1):
response = requests.get(f"{url}?page={page}")
if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
comments = soup.find_all(class_="m-userContent")
for comment in comments:
if "Katılıyorum." in comment.text:
username = comment.find_previous(class_="username").text.strip()
if username is None:
username = ""
if username not in selected_usernames:
usernames.append(username)
selected_usernames.add(username)
return usernames
def select_winner(usernames):
if usernames:
winner = random.choice(usernames)
print("Kazanan:", winner)
else:
print("Katılım gösteren kullanıcı bulunamadı.")
def main():
url = input("Çekiliş konusunun linkini girin: ")
page_count = int(input("Sayfa sayısını girin: "))
usernames = get_usernames(url, page_count)
print("Toplam katılımcı sayısı:", len(usernames))
print("Çekilişe katılan kullanıcılar:")
for username in usernames:
print(username)
select_winner(usernames)
if __name__ == "__main__":
print("wyltre tarafından yapılmıştır. github.com/wyltre")
main()
Python indirin. Sonra modülleri kurun.
Bash:
pip install requests
Bash:
pip install beautifulsoup4
İster GitHub'dan ister buradan kodları alın ve .py olarak kaydedin.
CTRL + Shift sağ Click komut penceresini burada aç (Python dosyasında yapın bunu) "py dosyaismi.py"
Sonra konu linki girin, sonra sayfa sayısını ve bitti.
requests modülü: belirtilen Konu'dan sayfaları almak için. Beautiful Soup modülü: belirtilen konuda kullanıcı yorumlarını ve kullanıcı adlarını bulmak için. random modülü: kullanıcı adları listesinden rastgele bir kazanan seçmek için.
get_usernames fonksiyonu: belirtilen konudaki her bir sayfayı tarar ve "katılıyorum." ifadesini içeren yorumlardan kullanıcı adlarını alıyor. Daha önce seçilmiş kullanıcıları tekrar almaz. select_winner fonksiyonu: kullanıcı adları listesinden rastgele bir kazanan seçiyor. main fonksiyonu: kullanıcıdan çekiliş konusunun URL'sini ve sayfa sayısını alır. get_usernames fonksiyonunu kullanarak katılan kullanıcıları alır, ardından bu kullanıcıları ekrana yazdırır ve select_winner fonksiyonunu: kullanarak bir kazanan seçiyor.
Not: "Katılıyorum." ifadesini alıyor başka bir şey yazmayın.
Kimse yapmadan ben yapayım dedim
Belirtilen bir konudaki çekiliş konusunda katılan kullanıcıları topluyor ve bu kullanıcılar arasından rastgele bir kazanan seçiyor.
import random
import requests
from bs4 import BeautifulSoup
def get_usernames(url, page_count=1):
usernames = []
selected_usernames = set()
for page in range(1, page_count + 1):
response = requests.get(f"{url}?page={page}")
if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
comments = soup.find_all(class_="m-userContent")
for comment in comments:
if "Katılıyorum." in comment.text:
username = comment.find_previous(class_="username").text.strip()
if username is None:
username = ""
if username not in selected_usernames:
usernames.append(username)
selected_usernames.add(username)
return usernames
def select_winner(usernames):
if usernames:
winner = random.choice(usernames)
print("Kazanan:", winner)
else:
print("Katılım gösteren kullanıcı bulunamadı.")
def main():
url = input("Çekiliş konusunun linkini girin: ")
page_count = int(input("Sayfa sayısını girin: "))
usernames = get_usernames(url, page_count)
print("Toplam katılımcı sayısı:", len(usernames))
print("Çekilişe katılan kullanıcılar:")
for username in usernames:
print(username)
select_winner(usernames)
if __name__ == "__main__":
print("wyltre tarafından yapılmıştır. github.com/wyltre")
main()
Python indirin. Sonra modülleri kurun.
Bash:
pip install requests
Bash:
pip install beautifulsoup4
İster GitHub'dan ister buradan kodları alın ve .py olarak kaydedin.
CTRL + Shift sağ Click komut penceresini burada aç (Python dosyasında yapın bunu) "py dosyaismi.py"
Sonra konu linki girin, sonra sayfa sayısını ve bitti.
requests modülü: belirtilen Konu'dan sayfaları almak için. Beautiful Soup modülü: belirtilen konuda kullanıcı yorumlarını ve kullanıcı adlarını bulmak için. random modülü: kullanıcı adları listesinden rastgele bir kazanan seçmek için.
get_usernames fonksiyonu: belirtilen konudaki her bir sayfayı tarar ve "katılıyorum." ifadesini içeren yorumlardan kullanıcı adlarını alıyor. Daha önce seçilmiş kullanıcıları tekrar almaz. select_winner fonksiyonu: kullanıcı adları listesinden rastgele bir kazanan seçiyor. main fonksiyonu: kullanıcıdan çekiliş konusunun URL'sini ve sayfa sayısını alır. get_usernames fonksiyonunu kullanarak katılan kullanıcıları alır, ardından bu kullanıcıları ekrana yazdırır ve select_winner fonksiyonunu: kullanarak bir kazanan seçiyor.
Not: "Katılıyorum." ifadesini alıyor başka bir şey yazmayın.
Koda ilk "katılıyorum" un kabul edilmemesini (çekilişi düzenleyen kişi olduğu için), Tkinter modülünü kullanarak basit bir UI ve yedek kazanan seçilmesini ekledim.(not: Python bilgim çok düşük olduğu için yapay zekaya yazdırdım fakat fikirler benim.)
[CODE lang="python" title="Bahsettiğim kod"]
import requests
from bs4 import BeautifulSoup
import random
import tkinter as tk
from tkinter import messagebox
def get_usernames(url, page_count=1):
usernames = []
selected_usernames = set()
for page in range(1, page_count + 1):
response = requests.get(f"{url}?page={page}")
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all(class_='m-userContent')
for comment in comments:
if "Katılıyorum." in comment.text:
username = comment.find_previous(class_='username').text.strip()
if username is None:
username = ""
if username not in selected_usernames:
usernames.append(username)
selected_usernames.add(username)
return usernames
def select_backup_winner(usernames, winner):
remaining_users = [user for user in usernames if user != winner]
if remaining_users:
backup_winner = random.choice(remaining_users)
return backup_winner
else:
return None
Not: Kodda ufak tefek sorun denmeyecek hatalar var kod bitince kapanmıyor ve kişiler hiç belirgin değildi. Ben de bir güncelleme yaptım bunu da kullanabilirsiniz.
Dipnot: Bütün xenForo forumlarında çalışıyor.
[CODE lang="python" title="Python revize edilmiş kod" highlight="2, 43, 29"]import requests
from bs4 import BeautifulSoup
import random
def get_usernames(url, page_count=1):
usernames = []
selected_usernames = set()
for page in range(1, page_count + 1):
response = requests.get(f"{url}?page={page}")
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all(class_='m-userContent')
for comment in comments:
if "Katılıyorum." in comment.text:
username = comment.find_previous(class_='username').text.strip()
if username is None:
username = ""
if username not in selected_usernames:
usernames.append(username)
selected_usernames.add(username)
return usernames
def select_winner(usernames):
if usernames:
winner = random.choice(usernames)
print("|||||||||||||||||||||||||KAZANAN:", winner , "||||||||||||||||||||||||||")
else:
print("Katılım gösteren kullanıcı bulunamadı.")
Not: Kodda ufak tefek sorun denmeyecek hatalar var kod bitince kapanmıyor ve kişiler hiç belirgin değildi. Ben de bir güncelleme yaptım bunu da kullanabilirsiniz.
Dipnot: Bütün XenForo forumlarında çalışıyor.
[CODE lang="python" title="Python revize edilmiş kod" highlight="2, 43, 29"]import requests.
from bs4 import BeautifulSoup.
import random.
def get_usernames(url, page_count=1):
usernames = []
selected_usernames = set()
for page in range(1, page_count + 1):
response = requests.get(f"{url}?page={page}")
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all(class_='m-userContent')
for comment in comments:
if "Katılıyorum." in comment.text:
username = comment.find_previous(class_='username').text.strip()
if username is None:
username = ""
if username not in selected_usernames:
usernames.append(username)
selected_usernames.add(username)
return usernames.
def select_winner(usernames):
if usernames:
winner = random.choice(usernames)
print("|||||||||||||||||||||||||KAZANAN:", winner , "||||||||||||||||||||||||||")
else:
print("Katılım gösteren kullanıcı bulunamadı.")
[CODE lang="python" title="Hataları düzeltilmiş"]if name == "main":
import requests.
from bs4 import BeautifulSoup.
import random.
def get_usernames(url, page_count=1):
usernames = []
selected_usernames = set()
for page in range(1, page_count + 1):
response = requests.get(f"{url}?page={page}")
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all(class_='m-userContent')
for comment in comments:
if "Katılıyorum." in comment.text:
username = comment.find_previous(class_='username').text.strip()
if username is None:
username = ""
if username not in selected_usernames:
usernames.append(username)
selected_usernames.add(username)
return usernames.
def select_winner(usernames):
if usernames:
winner = random.choice(usernames)
print("|||||||||||||||||||||||||KAZANAN:", winner , "||||||||||||||||||||||||||")
else:
print("Katılım gösteren kullanıcı bulunamadı.")
Not: Kodda ufak tefek sorun denmeyecek hatalar var kod bitince kapanmıyor ve kişiler hiç belirgin değildi. Ben de bir güncelleme yaptım bunu da kullanabilirsiniz.
Dipnot: Bütün XenForo forumlarında çalışıyor.
[CODE lang="python" title="Python revize edilmiş kod" highlight="2, 43, 29"]import requests.
from bs4 import BeautifulSoup.
import random.
def get_usernames(url, page_count=1):
usernames = []
selected_usernames = set()
for page in range(1, page_count + 1):
response = requests.get(f"{url}?page={page}")
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all(class_='m-userContent')
for comment in comments:
if "Katılıyorum." in comment.text:
username = comment.find_previous(class_='username').text.strip()
if username is None:
username = ""
if username not in selected_usernames:
usernames.append(username)
selected_usernames.add(username)
return usernames.
def select_winner(usernames):
if usernames:
winner = random.choice(usernames)
print("|||||||||||||||||||||||||KAZANAN:", winner , "||||||||||||||||||||||||||")
else:
print("Katılım gösteren kullanıcı bulunamadı.")
Koda ilk "katılıyorum" un kabul edilmemesini (çekilişi düzenleyen kişi olduğu için), Tkinter modülünü kullanarak basit bir UI ve yedek kazanan seçilmesini ekledim.(not: Python bilgim çok düşük olduğu için yapay zekaya yazdırdım fakat fikirler benim.)
[CODE lang="python" title="Bahsettiğim kod"]
import requests.
from bs4 import BeautifulSoup.
import random.
import tkinter as tk.
from tkinter import messagebox.
def get_usernames(url, page_count=1):
usernames = []
selected_usernames = set()
for page in range(1, page_count + 1):
response = requests.get(f"{url}?page={page}")
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
comments = soup.find_all(class_='m-userContent')
for comment in comments:
if "Katılıyorum." in comment.text:
username = comment.find_previous(class_='username').text.strip()
if username is None:
username = ""
if username not in selected_usernames:
usernames.append(username)
selected_usernames.add(username)
return usernames.
def select_backup_winner(usernames, winner):
remaining_users = [user for user in usernames if user != winner]
if remaining_users:
backup_winner = random.choice(remaining_users)
return backup_winner.
else:
return None.