Merhaba.ben pythonun requests moduluyle forumdaki konu basliklarini ceke biliyorum.ama ayni zamanda konularin iceriginide cekmek istiyorum.ama bunu nasil yapacagimi bilmiyorum.aslinda baska web sitelerinde boyle bir seyi kolayca yapa bilirim ama bu forumda konuya girdigimizde url kisminda /t/konunun-slugu/id/rakam oluyor.t harfi ve konunun slugu sorun degil ama ilgili konunun idsini nasil cekecegimi bilmiyorum(konsolda <a>
taginin icinde data-topic-id diye bir sey vardi ama onu cekemedim).yardimci olursaniz sevinirim.
Aslinda en son gonderinin idsini kendimiz verdikden sonra basit bir matematik ile diger gonderilerin idsini sirayla bulmak olur.ama gonderilerin sirasi degisdigi icin calismiyacaktir.yok buda olmadi.
Merhaba, hangi forum sitesi (yazbel de data-topic-id göremedim başka bir site mi?) adresi yazabilirsen bakıp yardımcı olmaya çalışayım (aslında benimde çok bilgim yok ama yardımım olursa bakıp yazarım)
yazbel forumu
konu basliklarina sag tiklayin incele deyin.<a>
etiketinin icinde data-topic-id
diye bir sey oldugunu gormelisiniz.
Ok konu içeriğinde aramıştım, anasayfadan bakınca gördüm, şimdi bakınıyorum birşeyler yapabilirsem ileteceğim.
şöyle birşey yazdım ama işine yarar umarım, BeautifulSoup ile önce anasayfada ki ‘href’ leri çekiyor, sonra içlerinde konu linklerini ayıklayıp tekrar BeautifulSoupla konu içeriklerini çekiyor. Sadece istediğin konu içeriğini çekebilmek için sonuna sen birşeyler eklersin.
Tabii bu arada bu benim bilgi seviyemle ulaşabildiğim bir çözüm, istediğin bu mu bilmiyorum umarım işine yarar ama eminim daha işlevsel daha temiz yolları da vardır ve forumdan diğer arkadaşlar görüp yanıtlarlar umarım.
Selamlar
import requests
from bs4 import BeautifulSoup
url = "https://forum.yazbel.com/"
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
allLinks = []
links = soup.find_all('a')
for inLink in links:
allLinks.append(inLink.get('href'))
for url2 in allLinks:
if "https://forum.yazbel.com/t/" in url2:
print(url2)
r2 = requests.get(url2)
soup2 = BeautifulSoup(r2.content, 'html.parser')
links2 = soup2.find_all('p')
print(links2)
yaramaz olurmu.tesekkur ederim.bu benim icin cozum oldu.
Tam denk geldi aslında bende requests ve bs4 ile diğer gönderide bahsettiğim siteden veri çekme işi ile uğraşıyordum, senin sorun benim içinde güzel pratik yapma imkanı oldu
Kolay gelsin.
Discourse forumlarının (Yazbel bunlardan biri oluyor) API’yı da var, kullanılabilir.
Tesekkurler hocam.bunu bilmiyordum.oyrendim sayenizde.