Bu liste DataFrame -Python / BeautifulSoup'a nasıl yazdırılır

Oct 22 2020

Bu kodun çıktısı, aşağıda sağlanan web sitesindeki her satırı yazdırır.

Bununla birlikte, etiketleri de içerir. Esasen tüm satırları Excel'e koyabileceğim bir dataFrame'e yazdırmak istiyorum.

Adında yinelenen etiketler olduğu için find_all kullanıyorum çünkü .text çalışmaz.

İstenmeyen etiketlerin kaldırılması ve ardından listenin web sitesini çoğaltarak bir DF'ye alınması süreci nasıl olur?

Teşekkürler.

import requests
from bs4 import BeautifulSoup
import pandas as pd
productlinks=[]
r=requests.get(url)
soup= BeautifulSoup(r.content,'html.parser')
content=soup.find_all('tr')
for item in content:
    title=item.find_all('td')
    print(title)

Yanıtlar

1 AndrejKesely Oct 22 2020 at 04:03

En kolay yol kullanmaktır pandas.read_html:

import pandas as pd

url='https://sitc.sitcancer.org/2020/abstracts/titles/'
df = pd.read_html(url)[0]
print(df)
df.to_csv('data.csv', index=False)

Baskılar:

       #  ...                                           Keywords
0      1  ...  Adoptive immunotherapy; Monocyte/Macrophage; T...
1      2  ...  CAR T cells; Immune monitoring; Inflammation; ...
2      3  ...  Antibody; Biomarkers; Immune monitoring; T cel...
3      4  ...  Biomarkers; RNA; Solid tumors; Tumor microenvi...
4      5  ...  Antibody; B cell; Biomarkers; Immune monitorin...
..   ...  ...                                                ...
730  752  ...  Gene expression; Neoantigens; Regulatory T cel...
731  753  ...  Gene expression; Neoantigens; Regulatory T cel...
732  754  ...  Biomarkers; Chemokine; Chemotherapy; Costimula...
733  755  ...  Chemokine; Granulocyte; Myeloid cells; MDSC; T...
734  756  ...  Gene expression; Immune contexture; Immune sup...

[735 rows x 6 columns]

Ve kaydeder data.csv(LibreOffice'den ekran görüntüsü):