Списки массивов html-элементов, упорядоченные по веб-сайтам в selenium/beautiful SoupPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Списки массивов html-элементов, упорядоченные по веб-сайтам в selenium/beautiful Soup

Сообщение Anonymous »

Итак, в рамках более крупного проекта я пишу некоторый скрипт на Python, чтобы ввести слово в онлайн-программу латинского морфологического анализа Collatinus (Collatinus) и получить полное склонение/спряжение этого слова. Вот что у меня есть на данный момент:

Код: Выделить всё

from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
import pandas
from bs4 import BeautifulSoup as bs
import sys

#x = input("Word:")

chrome_service = Service(executable_path="C:\Program Files (x86)\msedgedriver.exe")
driver = webdriver.Edge(service=chrome_service)
driver.get("https://outils.biblissima.fr/en/collatinus-web/")

time.sleep(15)
driver.find_element(By.TAG_NAME, 'body').send_keys(Keys.COMMAND + 'r')
time.sleep(15)
driver.find_element(By.TAG_NAME, 'body').send_keys(Keys.COMMAND + 'r')
time.sleep(15)
search = driver.find_element(By.ID, "flexion_lemme")
search.send_keys('canis')
time.sleep(7)
submit = driver.find_elements(By.TAG_NAME, "button")
correct = submit[4]
correct.click()
time.sleep(15)
html = driver.page_source

if html.find("Une erreur s'est produite") != -1:
driver.find_element(By.TAG_NAME, 'body').send_keys(Keys.COMMAND + 'r')
time.sleep(20)
search = driver.find_element(By.ID, "flexion_lemme")
search.send_keys('canis')
time.sleep(7)
submit = driver.find_elements(By.TAG_NAME, "button")
correct = submit[4]
correct.click()
time.sleep(20)
html = driver.page_source
if html.find("Une erreur s'est produite") != -1:
driver.quit()
raise ZeroDivisionError("Nope.")
else:
results = driver.find_element(By.ID, "results")
titlesh4 = results.find_elements(By.TAG_NAME, "h4")
titlesp = results.find_elements(By.TAG_NAME, "p")
titleshref = results.find_elements(By.XPATH, "//*[ text() = 'Formes composées' ]")
html = driver.page_source
f = open('tables.html', "w", encoding="utf-8")
f.write(html)
f.close()
lh = open("tables.html", "r", encoding="utf-8")
soup = bs(lh, "html.parser")
prettyHTML=soup.prettify()
prettyHTML = prettyHTML.replace("ā", "a").replace("ă","a").replace("ā̆", "a").replace("ē","e").replace("ĕ", "e").replace("ē̆","e").replace("ī", "i").replace("ĭ", "i").replace("ī̆","i").replace("ō","o").replace("ō̆","o").replace("ŏ","o").replace("ŭ","u").replace("ū̆", "u").replace("ū","u")
f = open('tables.html', "w", encoding="utf-8")
f.write(prettyHTML)
f.close()
Это все еще в разработке.
Проблема заключается в том, что речь идет о заголовках каждой таблицы, которую я рисую из функции. Я хочу, чтобы каждая таблица данных, которую я извлекаю из HTML, имела заголовок, с которым я мог бы работать. Но заголовки, которые дает программное обеспечение, имеют разные формы: h4, p, a и т. д. Кроме того, некоторые заголовки перекрывают другие в иерархии, например. заголовок таблицы «subjonctif» будет иметь другой заголовок, скажем, «actif» или что-то в этом роде. На мой взгляд, единственный способ сделать это - если бы программа могла обнаружить заголовок перед ним и принять решение на его основе. А еще эти иерархические; Я бы хотел, чтобы родительское имя было включено в каждый из меньших заголовков, т. е. «subjonctif» стало «actif subjonctif». Последняя проблема заключается в том, что некоторые заголовки содержат две или три (?) таблицы внутри себя, поэтому я бы хотел, чтобы их можно было помечать, например, как «подчиненный № 1)» и «подчинительный подчинённый № 2». По моему мнению, и, пожалуйста, поправьте меня, если я ошибаюсь, все эти проблемы можно было бы легко исправить, если бы программа знала, что было перед каждой таблицей.
Я особо ничего не пробовал, так как Я не уверен, с чего начать. Если кто-нибудь может помочь, мы будем очень признательны.

Подробнее здесь: https://stackoverflow.com/questions/786 ... tiful-soup
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Очистка таблицы hulkapps с помощью Selenium или Beautiful Soup
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Очистка таблицы hulkapps с помощью Selenium или Beautiful Soup
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Замените одного веб-сайта другим с помощью Beautiful Soup/Python.
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • При анализе HTML с помощью Beautiful Soup иногда отсутствуют дочерние теги.
    Anonymous » » в форуме CSS
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • При анализе HTML с помощью Beautiful Soup иногда отсутствуют дочерние теги.
    Anonymous » » в форуме CSS
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»