机器学习和生物信息学实验室联盟
标题:
Twitter工具使用实例
[打印本页]
作者:
chenlin
时间:
2011-6-13 17:46
标题:
Twitter工具使用实例
今年使用Twitter下载工具的总结,希望明年不会再用到:((((
今年Twitter下载的流程是这样的
1)首先在网站下载“下载工具”lintool
2)在网站下载“Tweet种子”
3)使用lintool去抓取这些种子的html或者json格式文件
4)因为抓取过程中网络可能出错,因此需要repai步骤尽可能修复在爬虫抓取过程中的http错误
5)把下载的html或者json格式解读成正常html格式
6)索引(不是必须的),这样就可以简单的做检索了
由于国内被封,twitter无法访问,所有的下载过程需要在海外服务器上完成,要求安装有jre 1.6以上,ant包。我们不可能有海外服务器的管理员权限,因此我们采用的策略是相对路径调用java和ant。下载过程速度很慢,需要在多台海外服务器上并行完成。
以下是一个海外服务器的配置+运行全脚本,保存该脚本为CrawlT,运行时sh CrawlT tweetBlock1 [tweetBlock2] ...
会在海外服务器根目录下建立Twitter文件夹,运行完后将Twitter/lintool-twitter-corpus-tools-d604184/output 或者 Twitter/lintool-updated/output 中的所有-repair.tar.gz文件上传回本地服务器
#!/bin/sh
# 本脚本执行对某服务器的配置,并执行某些tweets数据集的抓取
# USAGE: sh CrawlT tweetsID1 tweetsID2 ...
# 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。
# 第一步,创建专用文件夹Twitter
mkdir Twitter
cd Twitter
# 第二步,下载部分。
# 下载JRE环境、ant包等,全部在Twitter文件夹下解压.
wget
http://labs.renren.com/apache-mi ... nt-1.8.2-bin.tar.gz
tar -xzvf apache-ant-1.8.2-bin.tar.gz
wget
http://59.77.16.75/main/~zq/jre.tar.gz
tar -xzvf jre.tar.gz
# 下载lintool在Twitter文件夹下,今年的lintool我在主页上放了一个
wget
http://homepage.fudan.edu.cn/~ch ... ools-d604184.tar.gz
tar -xzvf lintool-twitter-corpus-tools-d604184.tar.gz
# 使用相对路径ant lintool
cd lintool-twitter-corpus-tools-d604184
~/Twitter/apache-ant-1.8.2/bin/ant
# 注意,以上的步骤也可以简单的下载一个JRE环境和一个已经ant好的lintool
wget
http://59.77.16.75/main/~zq/jre.tar.gz
tar -xzvf jre.tar.gz
wget
http://59.77.16.75/main/~zq/lintool-updated.tar.gz
tar -xzvf lintool-updated.tar.gz
cd lintool-updated
# 今年的tweets是20110123-20110208,分为17个block,在执行本脚本时输入这个范围内的一些tweets
# 下载种子文件在lintool的input文件夹下。产生类似input/20110123/20110123-001.dat这样的种子文件,第一次下载的文件放在html文件夹中,修复过的放在repair文件夹中,打包放在output文件夹中
mkdir input
mkdir output
mkdir html
mkdir repair
for B in $*; do
wget --http-user=tweets2011 --http-passw
d=NHwv6H4o
http://ir.nist.gov/tweets2011/
$B-1.0.tar.gz
tar -zxv -C input -f $B-1.0.tar.gz
# 针对每一个block里面的种子文件,利用lintool来下载,全部下载好之后repair
cd input
cd $B
for X in ls $B-*.dat
do
cd ..
cd ..
echo "Handling $X"
if [ ! -e html/$X.html.seq ]; then
~/Twitter/jre/bin/java -Xmx500m -cp 'lib/*:dist/twitter-corpus-tools-0.0.1.jar' com.twitter.corpus.download.AsyncHtmlStatusBlockCrawler \
-data input/$B/$X -output html/$X.html.seq
~/Twitter/jre/bin/java -Xmx500m -cp 'lib/*:dist/twitter-corpus-tools-0.0.1.jar' com.twitter.corpus.download.VerifyHtmlStatusBlockCrawl \
-data input/$B/$X -statuses_input html/$X.html.seq \
-statuses_repaired repair/$X.repaird.html.seq \
-output_success repair/$X.repaired.log.success -output_failure repair/$X.repaired.log.failure
fi
cd input
cd $B
done
tar cvfz output/$B-repair.tar.gz repair/$B-*.*
done
作者:
zouquan
时间:
2011-6-13 20:13
赞,太厉害了!
林老师V5
作者:
xmubingo
时间:
2011-6-19 00:16
经验~!顶!
作者:
xmubingo
时间:
2011-6-19 00:16
经验~!顶!
作者:
娟子风信子
时间:
2012-5-9 11:34
麻烦问下诸位,有没有根据上面方法或者其它方式得到的Twitter语料啊?现急需做研究分析用,请麻烦各位给与帮助。
作者:
xmubingo
时间:
2012-9-11 14:12
哦,知道为什么要repair了。
欢迎光临 机器学习和生物信息学实验室联盟 (http://123.57.240.48/)
Powered by Discuz! X3.2