使用 BeautifulSoup 和 Python 解析文本时出现问题
Trouble Parsing Text using BeautifulSoup and Python
我正在尝试检索 regulations.gov 页上的评论部分。 http://www.regulations.gov/#!documentDetail;D=OCC-2011-0014-0032 上的段落 "Restrictions on Proprietary Trading... with free market driven valuations." 就是一个例子。
我正在使用 BeautifulSoup 和 Python 并且有以下代码:
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(http://www.regulations.gov/#!documentDetail;D=OCC-2011-0014-0032)
source = driver.page_source.encode('ascii', 'replace')
soup = BeautifulSoup(source)
print soup
commentHolder = soup.find("div", {"class":"GGAAYMKDDNE"})
print commentHolder
当我执行 "print soup" 时,我得到了一个输出(尽管是一个混乱的输出),但是当我执行 "print commentHolder" 时,我得到了 "None" 作为输出。我不太清楚为什么会这样,希望能得到任何帮助。谢谢。
注意:我使用 Selenium webdriver 尝试绕过 Javascript - 这是正确的方法吗?
在读取 page_source
之前,您需要让 PhantomJS
explicitly wait 元素出现 。为我工作:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.PhantomJS()
driver.get("http://www.regulations.gov/#!documentDetail;D=OCC-2011-0014-0032")
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.GGAAYMKDGNE")))
我正在尝试检索 regulations.gov 页上的评论部分。 http://www.regulations.gov/#!documentDetail;D=OCC-2011-0014-0032 上的段落 "Restrictions on Proprietary Trading... with free market driven valuations." 就是一个例子。
我正在使用 BeautifulSoup 和 Python 并且有以下代码:
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get(http://www.regulations.gov/#!documentDetail;D=OCC-2011-0014-0032)
source = driver.page_source.encode('ascii', 'replace')
soup = BeautifulSoup(source)
print soup
commentHolder = soup.find("div", {"class":"GGAAYMKDDNE"})
print commentHolder
当我执行 "print soup" 时,我得到了一个输出(尽管是一个混乱的输出),但是当我执行 "print commentHolder" 时,我得到了 "None" 作为输出。我不太清楚为什么会这样,希望能得到任何帮助。谢谢。
注意:我使用 Selenium webdriver 尝试绕过 Javascript - 这是正确的方法吗?
在读取 page_source
之前,您需要让 PhantomJS
explicitly wait 元素出现 。为我工作:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.PhantomJS()
driver.get("http://www.regulations.gov/#!documentDetail;D=OCC-2011-0014-0032")
wait = WebDriverWait(driver, 10)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "div.GGAAYMKDGNE")))