Как соскрести информацию с сайта, если есть кнопка «показать больше»? - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь сканировать веб-сайт с помощью кнопки «Показать больше», и у меня возникают проблемы с получением информации, которая появляется после нажатия кнопки «Показать больше».

В настоящее время я пытаюсь просканировать ссылки на все статьи на этом сайте: "https://www.nytimes.com/section/world"

Мне удалось использовать селен, чтобы нажать кнопку" Показать больше ", но я все еще не могу получить дополнительные ссылки. Вот что у меня пока есть:

driver = webdriver.Chrome(executable_path="/Users/cherlin/Documents/北大/大一/文计/期末大作业/程序/chromedriver")
driver.get("https://www.nytimes.com/section/world")

element = driver.find_element_by_xpath('//*[@id="latest-panel"]/div[1]/div/div/button').click()
links = driver.find_elements_by_css_selector('a.story-link')

Ссылки отображаются в виде списка из 40 элементов. Я все еще пытаюсь выяснить, как получитьфактические ссылки, но мне нужно сначала выяснить, как получить скрытые ссылки.

1 Ответ

0 голосов
/ 21 января 2019

Это можно сделать с помощью библиотеки requests, чтобы получить данные JSON:

import requests

for page in range(3):
    data = {"q" : "", "sort" : "newest", "page" : page, "dom" : "www.nytimes.com", "dedupe_hl" : "y"}
    r = requests.get("https://www.nytimes.com/svc/collections/v1/publish/www.nytimes.com/section/world", params=data)
    json_data = r.json()

    for item in json_data['members']['items']:
        print("{:50}  {}".format(item['headline'][:50], item['url']))

Это даст вам вывод, начиная с:

Lunar Eclipse and Supermoon: Photos From Around th  https://www.nytimes.com/2019/01/21/science/lunar-eclipse-supermoon.html
By the Numbers, China’s Economy Is Worse Than It L  https://www.nytimes.com/2019/01/20/business/china-economy-gdp-fourth-quarter.html
Henry Sy, the Philippines’ Richest Man and a Shopp  https://www.nytimes.com/2019/01/20/world/asia/henry-sy-dead.html
Carlos Ghosn Offers Higher Bail and Security Guard  https://www.nytimes.com/2019/01/20/business/carlos-ghosn-bail-japan.html
American Airstrike in Somalia Kills 52 Shabab Extr  https://www.nytimes.com/2019/01/20/world/africa/airstrike-shabab-somalia.html

Этот подход будет оченьбыстрее, чем при использовании селена.

...