Как я могу перетащить данные веб-страницы в свой DataFrame, ссылаясь на определенный класс HTML или идентификатор, используя pandas read_html? - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь получить данные из таблицы на этом сайте и сохранить их в формате CSV с включенным столбцом 'ticker'.Прямо сейчас мой код выглядит так:

import requests
import pandas as pd

url = 'https://www.biopharmcatalyst.com/biotech-stocks/company-pipeline-database#marketCap=mid|stages=approved,crl'
html = requests.get(url).content
df_list = pd.read_html(html)
df = df_list[0]
print (df)
df.to_csv('my data.csv')

, и в результате получается файл, который выглядит как this .

Я хочу, чтобы в моем столбце 'ticker'CSV-файл с соответствующим тикером, указанным для каждой компании.Тикер находится в HTML здесь (class = "ticker - small").Вывод должен выглядеть как this.

Я полностью застрял на этом.Я пытался сделать это в BeautifulSoup тоже, но я не могу заставить его работать.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 ноября 2018

имеет несколько таблиц, используйте BeautifulSoup для извлечения и выполните цикл для записи CSV.

from bs4 import BeautifulSoup

import requests, lxml
import pandas as pd

url = 'https://www.biopharmcatalyst.com/biotech-stocks/company-pipeline-database#marketCap=mid|stages=approved,crl'
html = requests.get(url).text
soup = BeautifulSoup(html, 'lxml')
tables = soup.findAll('table')

for table in tables:
    df = pd.read_html(str(table))[0]
    with open('my_data.csv', 'a+') as f:
      df.to_csv(f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...