python - 将文本文件上传到站点以使用 MechanicalSoup 进行分析

标签 python html

我正在尝试将文本文件发送到 TreeTagger Online对其进行分析并获取要下载的结果文件的链接。

import mechanicalsoup  
browser = mechanicalsoup.Browser()
homePage = browser.get("http://cental.fltr.ucl.ac.be/treetagger/")
formPart = homePage.soup.select("form[name=treetagger_form]")[0]
formPart.select("[name=file_to_tag]")[0]["name"]=open('test.txt', 'rb')
result = browser.post(formPart, homePage.url)

这给了我以下错误:

: (, UnicodeEncodeError('ascii', u'No connection adapters were found for \'\n\n\n\n\n Texte \xe0 \xe9tiqueter : \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\'', 216, 217, 'ordinal not in range(128)'))

我应该如何在现场获取我的文件(使用 MechanicalSoup 或其他模块)?


01/04/19 编辑

尽管我没有设法让@Rolando Urquiza 的答案在我的机器上运行,但我还是能够根据他的建议完成任务。

import mechanicalsoup  
browser = mechanicalsoup.Browser()
homePage = browser.get("http://cental.fltr.ucl.ac.be/treetagger/")
formPart = homePage.soup.select("form[name=treetagger_form]")[0]
form=mechanicalsoup.Form(formPart)
form.set('file_to_tag', 'test.txt')
upload=browser.submit(form,url="http://cental.fltr.ucl.ac.be/treetagger/")

感谢@Rolando Urquiza

最佳答案

根据 MechanicalSoup 的文档,您可以在 mechanicalsoup.Form 实例上使用 set 函数上传文件,参见 here .例如,您可以这样使用它:

import mechanicalsoup  
browser = mechanicalsoup.StatefulBrowser()
browser.get("http://cental.fltr.ucl.ac.be/treetagger/")
form = browser.select_form()
form.set('file_to_tag', 'test.txt')
result = browser.submit_selected()

关于python - 将文本文件上传到站点以使用 MechanicalSoup 进行分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969909/

相关文章:

html - 如何以 Angular 过滤垫卡

python - 为什么我收到 Typeerror : 'int' object not iterable

python - 如何通过双击文件在空闲编辑器中打开 python 文件 (windows 10)

python - 使用 Python 类有什么好处吗?

python - Bash 命令仅在第一次执行

html - 如何在全屏模式下显示自定义视频控件

python - 如何为一长串整数创建优化的迭代器?

html - 无法在 HTML 中的垂直菜单后写文章

html - HTML 中的条纹表

javascript - 支持双指缩放的 HTML5 图表库