Как показать скрытое содержимое в «View More» при использовании Selenium - Python - PullRequest
1 голос
/ 07 июля 2019
driver = webdriver.Chrome(r'XXXX\chromedriver.exe')
FB_bloomberg_URL = 'https://www.bloomberg.com/quote/FB:US'
driver.get(FB_bloomberg_URL)

board_members = driver.find_elements_by_xpath('//* [@id="root"]/div/div/section[3]/div[10]/div[1]/div[2]/div/div[2]')[0]
board=board_members.text
board.split('\n')

enter image description here

Я написал вышеприведенную кодировку для сбора информации о плате от Bloomberg для FaceBook. Но у меня проблемы с извлечением всех членов правления, потому что другие скрыты за «View More». Как я могу извлечь все имена?

Спасибо за помощь.

1 Ответ

0 голосов
/ 07 июля 2019

Вы можете сделать все это с помощью requests и получить соответствующий файл cookie для передачи в API из предыдущих GET.API можно найти на вкладке сети, нажав ссылку view more и просмотрев веб-трафик.

enter image description here


import requests

headers = {
    'dnt': '1',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'en-US,en;q=0.9',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
    'accept': '*/*',
    'referer': 'https://www.bloomberg.com/quote/FB:US',
    'authority': 'www.bloomberg.com',
    'cookie':''
}

with requests.Session() as s:
    r = s.get('https://www.bloomberg.com/quote/FB:US')
    headers['cookie'] = s.cookies.get_dict()['_pxhd']
    r = s.get('https://www.bloomberg.com/markets2/api/peopleForCompany/11092218', headers = headers).json()
    board_members = [item['name'] for item in r['boardMembers']]
    print(board_members)
...