我正在尝试从留言板上抓取数据并撞上了我似乎无法绕过的墙。我已经设法使用Selenium点击我要从中提取数据的页面,但我需要先将它传递给Beautiful Soup(或者,至少,我认为我这样做)。我无法弄清楚的是如何告诉BS我已经登陆的页面是那个没有明确调用url的转换的页面。
我试图通过定义网址来解决这个问题,但它仍然以无类型的形式返回。
目前在Mac上使用Python 2.7
这是我目前的代码/:
subj = driver.find_element_by_class_name('subject-link').click()
cu = driver.current_url
sub2 = driver.get(cu)
print(sub2)
我的期望是url会打印但是打印出“None”而我的假设是,如果我可以将sub2作为url,那么我将能够获得每个类别的字符串列表< / p>
dads_starts = []
dads_participating = []
dads_messages = []
soupm = BeautifulSoup(subj.content, "lxml")
###Appends dads_starts
for d in soupm.find(class_='disabled-link'):
dads_starts.append(d.text)
###Appends dads_participating
for d in soupm.findAll(class_='disabled-link'):
dads_participating.append(d.text)
###Appends dads_messages
for d in soupm.findAll(class_='message-text'):
dads_messages.append(d.text)
答案 0 :(得分:0)
也适用于lxml解析器。 https://www.youtube.com/watch?v=nHRA7cbL0vk
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
def parse_content(html_doc):
soup = BeautifulSoup(html_doc, 'html.parser')
print (soup.title.text)
driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
html_doc = driver.page_source
driver.close()
parse_content(html_doc)