(новая проблема) Python BeautifulSoup - Как перехватить текст при прокрутке вниз?(Веб-сканер) - PullRequest
0 голосов
/ 14 апреля 2019

Я исправил предыдущую проблему. Но теперь я сталкиваюсь с новой проблемой. когда я ищу Ширан на странице, if "Shreeran" in j: все просто отлично. Однако, если я добавлю еще одно ключевое слово, например концерт, результат будет сгенерирован случайным образом. Например; if "Shreeran" or "concert" in j:. Как я могу это исправить?

while True:
    url ='https://xxxxxxxxx/{}'.format(pagenum)
    driver.get(url)
    pagesource = driver.page_source
    soup = BeautifulSoup(pagesource, 'lxml')
    if url == "https://xxxxxxxxxx/5":
        break
    else:
        for s in soup.find_all("div", class_="_2cNsJna0_hV8tdMj3X6_gJ"):
            for j in s:
                if "Sheeran" in j: # only search Sheeran is fine but if i change it to "Sheeran" or "concert", the result will be generated randomly
                    print(s.text)


    pagenum+=1

    time.sleep(2)

как мне найти что-то по нескольким ключевым словам?

1 Ответ

0 голосов
/ 14 апреля 2019

Альтернативным подходом было бы выяснить, как сайт получает контент при прокрутке.

Вы можете попробовать увеличить номера страниц в цикле.

pagenum = 1
while True:
    url ='https://lihkg.com/thread/1082050/page/{}'.format(pagenum)
    driver.get(url)
    pagesource = driver.page_source
    soup = BeautifulSoup(pagesource, 'lxml')
    profile_links = soup.find('a', attrs={'href': re.compile('/profile'))
    if not profile_links:
        break
    pagenum+=1
    # page is valid, continue with code to extract results 

или используйте там URL-адрес API, который появляется в сетевом трафике.

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