1

我想编写一个 python 脚本来抓取一个社交网络网站。脚本的目的应该是检索社交图谱(友谊关系)的一部分。

该网站不提供任何 API。

问题是:我如何在 python 中抓取一个假装登录会话来访问联系页面的网站(例如,http://www.anobii.com/junemiller/friends)?好吧,我有我的登录名\密码,我会用它来登录和检索,但我不知道如何使用它通过 python 登录以建立会话来访问页面。关于 python 模块或方法的任何建议?

谢谢,雅各布

4

3 回答 3

2

您还可以使用Scrapy,它已经处理了 cookie 和 Web 会话。

在官方文档中有一个如何执行登录的示例: http ://doc.scrapy.org/en/stable/topics/request-response.html?highlight=request#using-formrequest-from-response-to-模拟用户登录

Scrapy 是使用异步 IO实现的,因此它应该比 Mechanize 或 twill 更快。

于 2010-09-19T19:52:42.117 回答
2

首先,您应该检查社交网络是否提供了执行此操作的 API。此外,请检查服务条款是否允许您想做的事情,否则您将面临被阻止/禁止的风险。

如果没有 API 并且您被允许以这种方式抓取系统,请查看诸如mechanizetwill之类的工具来模拟浏览器/cookie/会话行为并提供适当的抓取。

或者,使用lxml.htmlurllib2cookielib模块等自行实现。

于 2010-09-18T08:42:53.920 回答
0

你应该调查机械化。从文档中:

在 Andy Lester 的 Perl 模块 WWW::Mechanize 之后,使用 Python 进行有状态的程序化网页浏览。

或者,您可以使用 urllib2 和其他内置 Python 模块自行开发。

正如@Ivo所说,请先检查网站是否有 API 可以为您执行此操作。例如,Facebook 有 Graph API 可以完成您所描述的工作。

于 2010-09-18T08:44:09.033 回答