我试图刮研究网站,我卡住了。我希望刮板读取页面源代码,并将其附加到本地HTML文件中,以便我可以分析校外数据。我已经尝试了BeautifulSoup
和Scrapy
,但我发现我需要使用Selenium
与页面进行交互以浏览我的大学的认证系统。 (我不包括那个代码,因为它与我的问题相关)。如何刮页HTML并遵循硒中的下一个链接
当我运行脚本时,它导航到页面并单击链接,但它只保存第一页的HTML。然后它会在每次点击链接时重复并追加该页面的HTML。
如何使用Selenium
点击下一页链接,刮掉HTML并保存到文件,直到到达最后一页?
source = driver.page_source
while True:
with open("test.html", "a") as TestFile:
TestFile.write(source)
try:
driver.implicitly_wait(200)
driver.find_element_by_css_selector('li.next').click()
except AttributeError:
break
编辑:我添加除AttributeError的到和接收到的下面的错误。
selenium.common.exceptions.StaleElementReferenceException:消息: 陈旧元素参考:元素没有连接到网页文件
我的假设是,我需要放慢.click()
,这是为什么我原本有隐含的等待,但似乎并没有这样做。
摆脱你赤裸的,除了你会得到一个更错误提示信息 – n1c9
感谢n1c9,我增加了一个AttributeError的,除了它给了我在上面添加的错误代码:StaleElementReferenceException。 – woodNUFC
页面上是否有任何弹出窗口或类似内容?或者它是否正常翻转到下一页?另外,当初始化webdriver时,应该设置'implicitly_wait(num)',但这只是一种风格。 – n1c9