aşağıdaki kod ile beatifulSoup kullanarak bir sayfadan alan adı listesini çekiyorum ve başlarındaki www. ve / (slash) işaretinden sonra gelen tüm içeriği temizleyerek aşıdaki gibi alt alta listeledim
for page in soup.find_all('div', attrs={'class': 'cxsa'}):
searc_resoult = page.string
filter = searc_resoult.replace("www.", "")
liste = filter[:filter.find("/")]
listem = []
listem.append(liste)
print(listem)
Sonrasında Listeye Almak istedim önce boş bir liste tanımlayıp sonrasında listemi append ettim fakat listemi yazdırdığımda alt alta her biri birbirinden bağımız bir liste oluyor
benim istediğim ise şöyle listem = [‘a.com’,‘b.com’,‘c.com’,‘d.com’] olarak Alt alta gelmesi yerine YAN YANA LİSTEYİP istediğim sıradaki degeri çekerek işlem yapmak istiyorum bu konuda degerli yardımlarınız bekliyorum
listem = [] değişkenini döngünün dışına alırsanız düzelir muhtemelen. Sanırım print de döngünün içinde. Onu da döngünün dışına almalısınız.
Ayrıntılı açıklama: listem = [] dögünün içinde olduğu için her seferinde yeniden bir değişken olarak oluşturuluyor. Haliyle içindeki veriler de siliniyor. Bu değişkeni döngünün üst kısmına yani dışına yazmalısınız. Eğer dışına ama alt kısmına yazarsanız bu sefer listem.append() koduna gelindiğinde NameError: name ‘listem’ is not defined hatası alırsınız. Çünkü kodlar sıralı bir şekilde yukarıdan aşağı doğru okunuyor.
Ekrana tek tek yazmasının sebebi ise üstteki açıklamama ek olarak her döngü başa döndüğünde print(listem) yazılmasıdır. Yani içi boş bir listem değişkeni oluşturuluyor, içine veri ekleniyor, ekrana basılıyor ve döngü başa dönünce bu işlem tekrarlanıyor.