Как проанализировать таблицу HTML в URL-адресе ". php", используя Pandas 'read_ html (python) - PullRequest
0 голосов
/ 15 апреля 2020

Итак, я открыл страницу, используя селен, и в этом текущем URL я хочу проанализировать таблицу HTML. URL-адрес, например, «https://something.sth/modules/auth/current_url.php», и у меня есть таблица с 4 заголовками: «Запись», «Урок», «Учитель», «Тип». Имя таблицы - «таблица по умолчанию». Теперь я искал вокруг и нашел много людей, которые предлагали использовать метод pandas 'read_ html. Мой код выглядит примерно так:

import pandas as pd
import selenium

# i get the current url i'm in, which again looks like : https://something/modules/auth/current_url.php
currentURL = browser.current_url
# now I want the table that is inside the html of my url to be parsed by pandas
dfs = pd.read_html(currentURL)

Затем я получаю ValueError: Таблицы не найдены

Ι также попробовал решение, которое кто-то еще предложил в SO, используя Beautiful Soup

from bs4 import BeautifulSoup
path = browser.current_url
ecj_data = open(path,'r').read()

soup = BeautifulSoup(ecj_data)


tabulka = soup.find("table", {"class" : "MsoNormalTable"})

column_headers = ['Record','Lesson', 'Teacher', 'Type']
records = []
for idy, row in enumerate(tabulka.findAll('tr')):
    if idy == 0:
        continue
    cols = row.findAll('td')
    record = {}
    for idx, col in enumerate(cols):
        record[column_headers[idx]] = col.text.strip()
    records.append(record)

df = pd.DataFrame.from_dict(records)

df[column_headers]

Теперь я получаю OSError [Errno22] Недопустимый аргумент: 'https://something.sth/modules/auth/current_url.php '

По-видимому, это неправильно, поскольку я не совсем понял, как передать правильный URL-адрес для pandas для чтения. Кроме того, в примере я попытался скопировать URL-адрес. html, тогда как у меня есть. php. Это проблема? И если да, то как мне разобрать расширение PHP URL? Кто-нибудь может мне помочь, пожалуйста! Большое спасибо!

...