Merhaba, ben İMDb’nin Top 250 isimli listesini çekmeye çalışıyorum da, verileri çekmekte sorun yaşamıyorum ama belirli bir düzene koymakta zorlanıyorum. Kodları aşağıya bıraktım, yardımcı olursanız sevinirim.
import requests
from bs4 import BeautifulSoup as bs
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"}
r = requests.get("https://www.imdb.com/chart/top", headers=headers)
soup = bs(r.content, "html.parser")
baslik = soup.thead.tr
filmler = soup.find_all("td", {"class":"titleColumn"})
cikisYili = soup.find_all("span", {"class":"secondaryInfo"})
reyting = soup.find_all("td", {"class":"ratingColumn imdbRating"})
#####################################################################
# find_all() metodu .get_text() , .text metodlarını kullanınca hata veriyor.
# Bir döngüye koymam gerekiyor, text'i alabilmek için.
#####################################################################
sira = 0
for i in filmler:
sira += 1
print(i.a.text.strip())
for j in cikisYili:
print(j.text)
for x in reyting:
print(x.text.strip())
# Asıl yapmak istediğim şey şu:
"""
Rank & Title IMDb Rating
________________________________
1. Film... 1994 9,2
2. Film... 1972 8,9
...
"""
# Sanırım bu tabloyu yapabilmek için kullandığım bütün find_all() metodlarını
# tek bir döngüye koymam gerekiyor ama bi' yol düşünemedim açıkçası.
# Yardımınız için şimdiden teşekkürler.