我正在尝试从evernote获取数据'共享笔记本电脑'。 例如,从这一个:https://www.evernote.com/pub/missrspink/evernoteexamples#st=p&n=56b67555-158e-4d10-96e2-3b2c57ee372c
我尝试使用Beautiful Soup:
url = 'https://www.evernote.com/pub/missrspink/evernoteexamples#st=p&n=56b67555-158e-4d10-96e2-3b2c57ee372c'
r = requests.get(url)
bs = BeautifulSoup(r.text, 'html.parser')
bs
结果不包含笔记本中的任何文本信息,只包含一些代码。
我还看到了使用selenium并通过XPath查找元素的建议。 例如,我想找到这个笔记的头部 - '第3周第2周'。在谷歌浏览器中,我发现它的XPath是' / html / body / div [1] / div [1] / b / span / u / b'。 所以我试过这个:
driver = webdriver.PhantomJS()
driver.get(url)
t = driver.find_element_by_xpath('/html/body/div[1]/div[1]/b/span/u/b')
但它也没有用,结果是'NoSuchElementException:......'。
我是python中的新手,特别是解析,所以我很乐意接受任何帮助。 我使用的是python 3.6.2和jupiter-notebook。
提前致谢。
答案 0 :(得分:0)
与Evernote交互的最简单方法是使用他们的official Python API。
在您配置了API密钥并且通常可以连接之后,您可以下载并参考Notes和笔记本。
Evernote Notes使用自己的模板语言ENML(EverNote标记语言),它是HTML的一个子集。您将能够使用BeautifulSoup4来解析ENML并提取您正在寻找的元素。
如果您尝试针对本地安装(而不是他们的网络应用)提取信息,您也可以从可执行文件中获取所需内容。请参阅本地安装的how to pass arguments以提取数据。为此,您需要使用Python3 subprocess
模块。
<强>无论其强>
如果您想使用selenium,这将帮助您入门:
async def check_for_pending_status(self, alert_id):
alert_comments = await get_comments(alert_id)
return next((comm.get('email') for comm in alert_comments
if comm['status'] == COMMENT_STATUS.PENDING.value),
None)