我可以使用哪些Python工具与网站API进行交互?

6

假设我想让一个 Python 脚本与 Twitter 这样的网站进行交互。

我应该使用什么工具来实现呢?我习惯于在 bash 中使用 curl/wget,但是 Python 似乎更好用。那么 Python 中有什么相当于 curl/wget 的工具吗?

(这并不是在 web 服务器上运行的 Python,而是通过命令行在本地运行)

5个回答

8

对于类似Twitter这样的应用,不要重复造轮子,使用像python-twitter这样的库可以省下很多时间。这样一来,你可以编写自己的脚本或完整的应用程序,用它来与Twitter进行交互,而不必关心实现细节。

如果你想自己编写接口库,就必须熟悉urllib,同时根据结果提供的格式,需要使用诸如lxml(或其他一些xml解析器)或者simplejson


2
urllib、lxml和simplejson听起来像是我需要的工具。谢谢! - Rich Bradshaw
@Rich:如果你觉得这个有帮助,那么你知道你该做什么...眨眼挤眼 - Jeremy Cantrell

5

4
我全心全意地推荐机械化用于Python。它恰好是一个可编程的网络浏览器,您可以从Python中使用它,它还处理表单和cookie!它使任何类型的网站爬取变得轻而易举。请查看该链接上的示例,以了解其功能。

Mechanize适用于没有API的情况,但是OP指定了像Twitter这样有API的网站,所以urllib2通常是更好的选择。 - bouvard
啊,我不太明白你所说的“有API”的意思 - 但是你的意思是它有一种通过URL进行广泛接口交互的方式。在这种情况下,urllib2应该足够了。 - Claudiu
“它使得任何类型的网站爬取都变得轻而易举。” —— 除了那些通过JavaScript设置Cookie值并依赖它们的网站,正如我正在发现的让我感到不快。 - Paul D. Waite
@Paul:啊,没错。我也遇到过这个问题。我一直想做一个机械化的程序,可以解析和执行JavaScript,因为我还没见过有这样的程序,但是暂时没有时间。 - Claudiu
当然。我目前正在尝试使用Selenium,它比较重量级(实际上需要在系统上安装一个真正的浏览器,这在本地是可以的,但如果您想在共享托管服务器上运行它,则会更加麻烦)。 - Paul D. Waite

2

Python有一个非常好的httplib模块和一个url模块,它们可以一起完成您所需的大部分功能(至少涉及wget功能)。


0

如果您习惯于使用cURL,请考虑PycURL


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接