Как очистить сайты, которые не возвращают исходный код, используя Python?
Я пытаюсь очистить "код ASX" для объявлений, сделанных компаниями на Австралийской фондовой бирже со следующего веб-сайта: http://www.asx.com.au/asx/statistics/todayAnns.do
До сих пор я пытался использовать BeautifulSoup со следующим кодом:
import requests
from bs4 import BeautifulSoup
response = requests.get('http://www.asx.com.au/asx/statistics/todayAnns.do')
parser = BeautifulSoup(response.content, 'html.parser')
print(parser)
Однако, когда я распечатываю это, оно не печатается так же, как когда я вручную захожу на страницу и просматриваю исходный код страницы. Я немного погуглил, посмотрел на stackru и считаю, что это из-за запуска Javascript на странице, которая скрывает HTML-код.
Однако я не уверен, как обойти это. Любая помощь будет принята с благодарностью.
Заранее спасибо.
1 ответ
Попробуй это. Все, что вам нужно сделать, это дать скребку подождать несколько секунд, пока страница загрузится, потому что вы, возможно, уже заметили, что контент загружается динамически. Однако после выполнения вы получите левый заголовок таблицы с этой веб-страницы.
import time
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.asx.com.au/asx/statistics/todayAnns.do')
time.sleep(8)
soup = BeautifulSoup(driver.page_source,"lxml")
for item in soup.select('.row'):
print(item.text)
driver.quit()
Частичные результаты:
RLC
RNE
PFM
PDF
HXG
NCZ
NCZ
Кстати, я написал и выполнил этот код, используя Python 3.5. Таким образом, нет никаких проблем с последней версией python, когда дело касается связывания селена.