Aslında 1 ay içindeki cevaplanmamış tüm konuları çekecekti ama üşendiğimden yapmadım, isteyen yapabilir. Şu an sadece verdiğimiz sayfadaki cevaplanmamış konuları çekiyor. Aslında bahsettiğim olayın temelini attım:
Kod:
if not "önce" in str(tarih):
ssl.close()
return False, cevaplanmadi
Eğer bir saat önce, bir hafta önce gibi bir yazı yoksa False ve konuları döndürüyor. Tek eklemeniz gereken /tht-yardim-merkezi/index2.html, /tht-yardim-merkezi/index3.html diye devam eden bir döngü açmak, False ise tüm konuları yazdırmak.
Üçüncü parti kullanmadım, siteye ssl ile bağlantı kuruyor.
Kod:
import socket
import re
def sayfadancek(sayfa):
import ssl
hostName = "www.turkhackteam.org"
context = ssl.create_default_context()
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl = context.wrap_socket(client, server_hostname=hostName)
ssl.connect((hostName, 443))
data = f"GET {sayfa} HTTP/1.1\r\nHost: www.turkhackteam.org\r\nUser-Agent: Mozilla/5.0\r\nConnection: close\r\n\r\n"
ssl.send(data.encode())
veri = bytes()
while True:
temp = ssl.recv(2048)
if not temp:
break
veri += temp
postlar = re.findall(b'class="alt2" title="(.*?)"', veri)
linkler = re.findall(b'href=[\'"]?([^\'" >]+)" id="thread_title_(.*?)"', veri)
tarihler = re.findall(b']*>(.*?)
', veri)
cevaplanmadi = []
for _ in linkler[12:]:
url = _[0].decode()
index = linkler.index(_)
posts = postlar[index].decode('iso-8859-9').split(" ")[1].replace(",", "")
tarih = tarihler[index].decode('iso-8859-9')
if not "önce" in str(tarih):
ssl.close()
return False, cevaplanmadi
if posts == "0":
cevaplanmadi.append(url)
ssl.close()
return True, cevaplanmadi
print(sayfadancek("/tht-yardim-merkezi/"))
Yardım Merkezindeki Cevaplanmamış Konuları Çekmek
Python0 Mesaj
●40 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Server-Side Programlama
- Python
- Yardım Merkezindeki Cevaplanmamış Konuları Çekmek