我正试图刮掉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)
但是,当我打印它时,它的打印方式与我手动进入页面并查看页面源时的打印方式不同。我已经做了一些谷歌搜索并查看了stackoverflow,并认为这是由于在页面上运行的Javascript隐藏了html代码。
但是我不确定如何解决这个问题。任何帮助将不胜感激。
提前致谢。
答案 0 :(得分:3)
试试这个。您需要做的就是让刮刀等待一段时间,直到页面加载为止您可能已经注意到内容正在动态加载。但是,执行后,您将从该网页获取该表的左侧标题。
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编写并执行了这段代码。因此,当涉及到绑定selenium时,最新版本的python没有问题。