用selenium登陆后,获取登陆后页面的链接后的网页,然后保存为PDF,报错了。。

任海东
  • 4
新手上路,请多包涵

用selenium登陆后,获取登陆后页面的链接后的网页,然后保存为PDF,我用代码是:

all = driver.find_elements_by_css_selector('.title')
for i in range(1):
    print i
    print all[i].text
    all[i].click()
    time.sleep(4)
    html = driver.page_source
    print type(html)
    path_wkthmltopdf = r'F:\Python\Anaconda\Lib\wkhtmltopdf\bin\wkhtmltopdf.exe'
    config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
    pdfkit.from_string(html, "F:\Confirm Data\{}.pdf".format(all[i].text), configuration=config)

clipboard.png

谢谢。

回复
阅读 3.6k
1 个回答
dodopy
  • 2.4k
✓ 已被采纳

提示错误就是所引用的元素已不再依附于当前页面了,原因大致是页面跳转或者刷新导致的页面内容变更。
估计你是想遍历文章标题,点击标题进入正文,然后抓取保存成pdf。

那么看代码:

pdfkit.from_string(html, "F:\Confirm Data\{}.pdf".format(all[i].text), configuration=config)

在 click() 事件后,页面都刷新或者跳转了,从新页面的源码中引用 all[i].text 导致报错。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏