Итак, я попытался сделать это с помощью PyQt4 и не добился реального успеха на практике, более простое, но несколько более инвазивное решение - использовать Selenium, веб-драйвер для загрузки веб-страниц.
Я уверен, что есть несколько решений для этого, но у меня был ад времени , даже зная, что случилось, пока я не нашел свое решение.
При использовании lxml вы должны убедиться, что данные, которые вы пытаетесь получить , не генерируются javascript . Для этого вы можете открыть инструменты разработчика Chrome , , щелкнуть меню (3 вертикальные точки), перейти в настройки , перейти на дно , отключите JavaScript и перезагрузите страницу .
Если ничего не существует , страница генерируется с использованием Javascript .
A простое решение ниже, это будет ждать отображения страницы, а затем позволит вам проанализировать дерево с помощью lxml.
Это решение потребует использования следующих импортов (необходимо установить селен):
from selenium import webdriver
Теперь вы можете загрузить страницу и начать очистку:
#Load in your browser(I use chrome)
browser = webdriver.Chrome()
#Choose url you want to scrape
url = 'https://pubgtracker.com/profile/pc/Fuzzyllama/duo?region=na'
#get the url with Selenium
browser.get(url)
#get the innerhtml from the rendered page
innerHTML = browser.execute_script("return document.body.innerHTML")
#Now use lxml to parse the page
tree = html.fromstring(innerHTML)
#Get your element with xpath
duoRank = tree.xpath('//*[@id="profile"]/div[2]/div[2]/div[1]/div[2]/div[2]/div[1]/span[2]/text()')
#close the browser
browser.quit()
Мое оригинальное решение было бы неплохо, но просто не сработало, потому что большая часть его устарела.