Если вы хотите получить слова из таблицы, вы должны использовать библиотеку синтаксического анализа, например BeautifulSoup4 . Вот пример, как вы можете разобрать это (я использую запросы для получения и beautifulsoup здесь для анализа данных):
Сначала используйте инструменты dev в вашем браузере, чтобы идентифицировать таблицу с контентом, который вы хотите проанализировать. Таблица с переводами имеет servicesT
атрибут класса, который встречается только один раз во всем документе:
import requests
from bs4 import BeautifulSoup
url = 'https://english-thai-dictionary.com/dictionary/?sa=all;ftlang=then'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'lxml')
# Get table with translations
table = soup.find('table', {'class':'servicesT'})
После этого вам нужно получить все строки, содержащие переводы для тайских слов. Если вы посмотрите исходный файл страницы, то заметите, что первые несколько строк <tr
являются заголовками, которые содержат только заголовки, поэтому мы их опускаем. После этого мы получим все элементы <td>
из строки (в этой таблице всегда есть 3 <td>
элементов) и извлекем из них слова (в этой таблице слова фактически вложены в и).
table_rows = table.findAll('tr')
# We will skip first 3 rows beacause those are not
# contain information we need
for tr in table_rows[3:]:
# Finding all <td> elements
row_columns = tr.findAll('td')
if len(row_columns) >= 2:
# Get tag with Thai word
thai_word_tag = row_columns[0].select_one('span > a')
# Get tag with English word
english_word_tag = row_columns[1].find('span')
if thai_word_tag:
thai_word = thai_word_tag.text
if english_word_tag:
english_word = english_word_tag.text
# Printing our fetched words
print((thai_word, english_word))
Конечно, это очень простой пример того, что мне удалось разобрать со страницы, и вы должны решить для себя, что вы хотите удалить. Я также заметил, что данные внутри таблицы не всегда имеют переводы, поэтому вам следует помнить об этом при очистке данных. Вы также можете использовать библиотеку Requests-HTML для анализа данных (она поддерживает разбиение на страницы, которые представлены в таблице на странице, которую вы хотите просмотреть).