用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

谢谢。

评论
阅读 2.4k
1 个回答
✓ 已被采纳

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

那么看代码:

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

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

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏