Печать отдельных строк с помощью модуля Beautiful Soup - PullRequest
0 голосов
/ 11 апреля 2019

Я получаю данные с веб-сайта компании fortune 500 (http://fortune.com/fortune500/list/). Я пытаюсь отобразить строки в точности так, как вы их видите на веб-странице.

Я попытался перебрать класс "ul", и он печатает одну строку вместо отдельных строк.

import urllib.request
from bs4 import BeautifulSoup

sauce = 
urllib.request.urlopen("http://fortune.com/fortune500/list/").read()
soup = BeautifulSoup(sauce, 'html.parser')


for company in soup.findAll("ul", {"class": "company-list"}):
    print(company.text)

ожидаемые результаты:

Rank    Company                   revenues($M)
 1        Walmart                    $500,343
 2         Exxon                     $244,363
 etc.

1 Ответ

0 голосов
/ 11 апреля 2019

из вашего кода, принимая company как variable

import pandas as pd
data = company.get_text("|").split("|") 
rank =data[0::3][1:-1] ## not taking last line 
company = data[1::3][1:]
revenue = data[2::3][1:]
df = pd.DataFrame({"rank":rank,"company":company,"revenue":revenue})

print(df.head())

ix  rank    company revenue
0   1   Walmart $500,343
1   2   Exxon Mobil $244,363
2   3   Berkshire Hathaway  $242,137
3   4   Apple   $229,234
4   5   UnitedHealth Group  $201,159
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...