【发布时间】:2010-11-20 15:50:04
【问题描述】:
我需要类似 iMacros for Python 的东西。有这样的东西会很棒:
browse_to('www.google.com')
type_in_input('search', 'query')
click_button('search')
list = get_all('<p>')
你知道类似的事情吗?
提前致谢, 埃塔姆。
【问题讨论】:
我需要类似 iMacros for Python 的东西。有这样的东西会很棒:
browse_to('www.google.com')
type_in_input('search', 'query')
click_button('search')
list = get_all('<p>')
你知道类似的事情吗?
提前致谢, 埃塔姆。
【问题讨论】:
几乎直接实现了问题中的愿望-twill。
twill 是一种简单的语言,允许用户从命令行界面浏览 Web。使用斜纹布,您可以浏览使用表单、cookie 和大多数标准 Web 功能的网站。
twill 支持自动化 Web 测试,并具有简单的 Python 界面。
(为方便起见,斜纹布包含pyparsing、mechanize 和BeautifulSoup。)
Python API 示例:
from twill.commands import go, showforms, formclear, fv, submit
go('http://issola.caltech.edu/~t/qwsgi/qwsgi-demo.cgi/')
go('./widgets')
showforms()
formclear('1')
fv("1", "name", "test")
fv("1", "password", "testpass")
fv("1", "confirm", "yes")
showforms()
submit('0')
【讨论】:
使用mechanize。除了在页面中执行 JavaScript 之外,还不错。
【讨论】:
要考虑的另一件事是编写自己的脚本。一旦掌握了窍门,它实际上并不太难,而且如果不调用六个大型库,它甚至可能会更快(但我不确定)。我使用一个名为“Charles”的网络调试器来浏览我想要抓取的网站。它记录所有传出/传入的 http 通信,我使用这些记录对查询字符串进行逆向工程。在 python 中操作它们可以实现非常快速、灵活的抓取。
【讨论】: