Как извлечь одно значение таблицы html в Python? - PullRequest
0 голосов
/ 18 марта 2020

Я хочу сохранить данные из таблицы, которая была скопирована с веб-сайта, в базу данных SQLite. Вот что я смог сделать до сих пор. Предпочтительно я хочу сохранить значение в переменной и позже загрузить его в базу данных.

import requests
from lxml import etree
from bs4 import BeautifulSoup

response = requests.get("https://www.boerse.de/historische-kurse/Daimler-Aktie/DE0007100000")

# storing content of page
src = response.content

# create BeatifulSoup Object based on src
soup = BeautifulSoup(src, 'lxml')

tables = soup.find_all("tr")


"""for table in tables:
    if "17.03.20" in table.text:
        table = table.text
        table = etree.HTML(table)
        rows = iter(table)
        for row in rows:
            values = [col.text for col in row]
            print(values)"""

for table in tables:
    if "17.03.20" in table.text:
        print(table)

1 Ответ

0 голосов
/ 18 марта 2020
import requests
from lxml import etree
from bs4 import BeautifulSoup
import pandas as pd

response = requests.get("https://www.boerse.de/historische-kurse/Daimler-Aktie/DE0007100000")

# storing content of page
src = response.content

# create BeatifulSoup Object based on src
soup = BeautifulSoup(src, 'html.parser')

tables = soup.find_all("table")

for table in tables:
    if "17.03.20" in table.text:
        df = pd.read_html(str(table))[0]
        row = df[df['Datum'] == "17.03.20"]

print (row)

Вывод:

print (row)
      Datum Erster Schluss    Hoch Tief  ... Schluss Volumen Veränderung Veränderung
0  17.03.20    23,77 23,98  24,81 21,57  ...    2398     4.290.555 5,64%       5,64%

[1 rows x 7 columns]

enter image description here

Чтобы проверить, является ли дата воскресеньем:

Вам необходимо преобразовать строку в объект datetime. Затем вы можете либо преобразовать в строку, в которой указан день недели. Или проверьте числовое значение (6 для воскресенья)

import datetime

dateStr = '17.03.20'
date_object = datetime.datetime.strptime(dateStr, '%d.%m.%y')


print (date_object.strftime('%A'))
print (date_object.weekday()) # Sunday = 6, Saturday = 5

Вывод:

Tuesday
1
...