在python中爬行社交网络

时间:2010-09-18 08:39:24

标签: python session networking social web-crawler

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

网站不提供任何API。

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

谢谢, 雅格布

3 个答案:

答案 0 :(得分:2)

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

如果没有API并允许您以这种方式抓取系统,请查看 mechanize twill 等工具来模拟浏览器/ Cookie /会话行为并提供适当的抓取。

或者,您可以使用 lxml.html urllib2 cookielib 模块等方式自行实施。

答案 1 :(得分:2)

您还可以使用已经处理Cookie和网络会话的Scrapy

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

Scrapy是使用Asynchronous IO实现的,所以它应该比Mechanize或twill更快。

答案 2 :(得分:0)

您应该调查Mechanize。来自文档:

  

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

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

作为@Ivo said,请先检查网站是否有API为您执行此操作。例如,Facebook使用Graph API来完成您所描述的内容。