soup.find_all('li')
просто возвращает все теги li
со страницы.Что вам нужно сделать, это получить соответствующую информацию из каждого тега li
, например, «Голоса», «Название», «Дата» и «URL», а затем сохранить ее, возможно, в списке списков.Затем вы можете преобразовать это в фрейм данных.Вы можете получить URL с помощью BeautifulSoup, используя атрибут 'href'
тега 'a'
.
from bs4 import BeautifulSoup
import requests
import pandas as pd
html = requests.get('https://s3.amazonaws.com/todel162/veryimp/claps-0001.html')
soup = BeautifulSoup(html.text, "lxml")
links = soup.find_all('li')
final_list=[]
for li in links:
votes=li.contents[0].split(' ')[0]
title=li.find('a').text
date=li.find('time').text
url=li.find('a')['href']
final_list.append([votes,title,date,url])
df = pd.DataFrame(final_list,columns=['Votes', 'title', 'Date','Url'])
print(df)
#just df if in Jupyter notebook
Пример вывода из блокнота Jupyter