Как скрести содержимое на разных вкладках с этого сайта? - PullRequest
1 голос
/ 26 сентября 2019

Я пытаюсь вычеркнуть синонимы слов из Thesaurus.com (используя bs4 и запросы).Страница примера: https://www.thesaurus.com/browse/put?s=t Проблема, с которой я сталкиваюсь, состоит в том, что есть три разных вкладки для разных значений слова, и у каждой есть свой список синонимов.Я хочу очистить их все, но я не уверен, как получить доступ к синонимам, перечисленным на неактивной вкладке.Когда я печатаю html и ctrl + f супа, синонимы из неосновной вкладки вообще не отображаются в html, что, по-видимому, указывает на то, что я не могу просто один раз почистить страницу.В любом случае, какой самый простой способ получить эти другие синонимы?

РЕДАКТИРОВАТЬ: В соответствии с просьбой комментария, вот мой код, чтобы в настоящее время очистить слово.Этот код работает отлично, как я уже сказал;Я просто не могу понять, как соскрести с других вкладок на странице.

results = {}
def scrape_word(word): 
    url = baseURL + word
    response = requests.get(url, timeout=5)
    if (response.status_code == 404):
        results[word] = []
        return
    soup = BeautifulSoup(response.content, 'html.parser')
    # Look only at the main content div or else you'll get other undesired tags
    soup = soup.find('div', attrs={'class': 'css-1kc5m8x e1qo4u830'})
    # The below variable is the class used by Thesaurus.com for synonyms
    word_class = 'css-133coio etbu2a32'
    # Structure of site is spans hold links which have text of the word
    spanList = soup.find_all('span', attrs={'class': word_class})
    synList = [span.find('a').text for span in spanList]
    results[word] = synList


EDIT2: комментарий от cddt дал мне альтернативный путь к данным, которые я хочу, но если кто-то знает,Мне все еще интересно, как я мог решить проблему без его решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...