【发布时间】:2018-04-21 21:03:58
【问题描述】:
我正在尝试从以下网站获取澳大利亚证券交易所公司发布的公告的“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 代码。
但是我不确定如何解决这个问题。任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
你标记了 Selenium,你试过了吗?
-
我完全不确定从哪里开始使用 Selenium。我找到了一个单击按钮并在此处提供源代码的示例:stackoverflow.com/questions/8960288/… 但我不需要单击按钮 - 我只需要源代码。不过我会继续寻找。感谢@cricket_007 的链接。
-
网站是动态生成的,除了使用和查找他们的 API 来请求您需要的数据或浏览器模拟器我想不出解决方案。
-
@ElvirMuslic 浏览器模拟器是一个可行的选择吗?硒会起作用吗?我写了一个硒代码的sn-p:
from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Firefox() driver.get('http://www.asx.com.au/asx/statistics/todayAnns.do') tickers = driver.find_elements_by_class_name("row") print(tickers)。但是我很确定 Selenium 只适用于 Python 2,而我只有 Python 3 -
绝对支持python 3。pypi.python.org/pypi/selenium
标签: python selenium web-scraping beautifulsoup dryscrape