Попытка преобразовать список извлеченных значений в Pandas DataFrame в Python. df = DataFrame (your_list, columns = ['Name']) принимает только текст, а не полную строку - PullRequest
0 голосов
/ 04 августа 2020

У меня есть список с очищенными значениями, например:

[<a href="shropshire.html">A Shropshire Lad (David Austin Rose, Austin, 1997) </a>,
 <a href="agiraud.html">Abbé Giraudier (Hybrid Perpetual, Levet, 1869)</a>,
 <a href="abelcarr.html">Abel Carrière (Hybrid Perpetual, E. Verdier, 1875)</a>,
 <a href="abelc.html">Abel Carrière (Illustration from <em>Le Livre d'Or des Roses</em>, 1903)</a>,
 <a href="darby.html">Abraham Darby® (David Austin Rose, Austin, 1985)</a>,
 <a href="adammes.html">Adam Messerich (Hybrid Bourbon, Lambert, 1920)<br/>
 </a>,

Когда я конвертирую свой список в pandas DataFrame, в столбце отображается только текст, а не полное значение.

введите описание изображения здесь

Как мне сделать df с полным содержимым каждого <a> ... </a>,? Или как я могу получить df с двумя столбцами, один с href, а другой с текстом?

1 Ответ

1 голос
/ 04 августа 2020

Размещение ответа здесь для других разработчиков.

Вам нужно извлечь href и текст из тега

обычно что-то вроде

soup = BeautifulSoup(html.text,'lxml')
with open(filename,'w',newline='',encoding='utf-8') as f:
    w = csv.writer(f)
    for a in soup.find_all('a',href=True):
        text = a.text
        link = a['href']
        w.writerow([text,link])

Затем вы можете загрузить это CSV в pandas вот так.

pandas.read_csv('filename.csv', columns =['text','url'])
...