0

我正在尝试从以下网站抓取公司在澳大利亚证券交易所发布的公告的“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代码。

但是我不确定如何解决这个问题。任何帮助将不胜感激。

提前致谢。

4

1 回答 1

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 没有问题。

于 2017-11-09T07:29:42.860 回答