总计划
State1 2019.3.31-
Day1 2019.3.31
尝试了SSH命令远程登陆到服务器,使用命令:
ssh -p 3003 arxiv@202.120.80.35
然后会报一些错误,不过一直回车,直到提示输入密码,然后输入密码“mail”
目前在校园网环境下进行远程登陆,非校园网下无法成功登录(所以我可以放心大胆的把密码写在这里了233)
查看Github开源项目https://github.com/karpathy/arxiv-sanity-preserver
查看Arxiv官网https://arxiv.org/
Day2 2019.4.1
SSH登录到服务器,使用如下命令获得管理员权限,进入/home目录下,下载arxiv-sanity-preserver项目
sudo su
cd /home/
git clone https://github.com/karpathy/arxiv-sanity-preserver
按照readme.md的步骤,进入到项目文件夹下,使用如下命令安装所有依赖文件
apt install python-pip
pip install -r requirements.txt
apt-get install imagemagick poppler-utils
使用一些linux命令查看服务器配置情况【1】
结论是20核CPU,内存250GB,硬盘1TB左右
Day3 2019.4.2
阅读readme.md中的“Processing pipeline”部分,内含如何改动代码的指示
各.py文件功能如下
Day4 2019.4.4
阅读fetch_papers.py,发现它对arxiv提供的API进行了调用,API的官方文档教程详见【2】
arxiv提供的API中支持Perl、Python、Ruby、PHP四种语言,其中支持Python的部分用到了feedparser库【3】
arxiv的API文档中提供了解析和分页的样例程序【4】【5】
Day5 2019.4.14
学习feedparser库,了解RSS(Really Simple Syndication,简易信息聚合)的概念,测试feedparser的基本使用(如下)【6】
import feedparser
d=feedparser.parse('http://feed.cnblogs.com/blog/sitehome/rss')
d['feed']['title']
d.feed.title
d.feed.subtitle
d.feed.link
输出结果如下图
所解析的网站http://feed.cnblogs.com/blog/sitehome/rss如下图
尝试使服务器命令行能输出中文但是失败
Day6 2019.4.17
继续学习feedparser库【3】【7】【8】
RSS和Atom的区别【9】
阅读arxiv提供的API官方文档教程【2】
Day7 2019.4.18
继续阅读arxiv提供的API官方文档教程,至3.3【2】
Day8 2019.4.22
继续阅读arxiv提供的API官方文档教程【2】
Day9 2019.4.24
阅读完毕arxiv提供的API官方文档(包括2个通过Python调用Arxiv API的样例程序)【4】【5】
继续阅读fetch_papers.py、utils.py等其他源代码,大致理解了整体项目思路流程
可以通过改变fetch_papers.py的目录来访问arxiv下不同领域的文章【14】
Day10 2019.5.8
对整体项目进行实验
1、输入以下命令将文章下载到db.p,可以在util.py中设置保存路径
python fetch_papers.py
执行完后,目录下多了一个db.p的文件
如果觉得要保存的论文太多了,可以更改下面的代码调整保存上限
2、读取db.p,保存为pdf格式
python download_pdfs.py
保存在了/data/pdf目录,同样可以在util.py中修改
3、使用以下命令会报错,报错语句的注释处显示需要使用python3
python parse_pdf_to_text.py
由于服务器上同时装了python2和python3,默认的python是python2,所以正确语句如下
python3 parse_pdf_to_text.py
4、生成thumbnail
python3 thumb_pdf.py
5、
python analyze.py
6、
python buildsvm.py
7、
python make_cache.py
可以直接运行
python3 serve.py --prod --port 80
但是需要安装一些依赖环境
python3 -m pip install flask
python3 -m pip install flask_limiter
python3 -m pip install pymongo
再次报如下错误
解决方案为将报错的行数那里的语句改为load(open(),encoding="iso-8859-1")【8】
不过执行时在连接到mongodb时被拒绝了
可能是要先打开mongodb吗,那么先打开一下再试试
使用如下命令查找mongodb的安装位置在/usr/bin
locate mongodb
Day11 2019.5.9
通过如下命令启动mongodb
cd /usr/bin
service mongodb start
然后运行server.py
python3 server.py
Day12 2019.5.22
遇到一个问题,就是Windowed decoding of protograph-based LDPC convolutional codes over erasure channels这篇文章搜不出来,不过改一下url后面绑定的东西就好了(参照直接在arxiv上搜索进行更改)代码第80行修改如下:
query = 'search_query=%s&&searchtype=all&abstracts=show&order=-announced_date_first&start=%i&max_results=%i' % (args.search_query,i, args.results_per_iteration)
成功获得该论文
Day13 2019.6.9
学习argparser【10】【11】
python命令行输入评测,由于还没有进一步处理,所以指定标题时需要用“+”连接,同时前面需要加“ti:"
python3 fetch_papers.py --search-query ti:XXX+XXX+XXX
相关传入参数的名称和类型均可在parser.add_argument中进行修改
接下来进行一些测评(年代较远和年代较近分别进行搜索评测):
结果表明年代远近的论文均能搜索到
接下来学习使用从ubuntu上提交代码至github【12】
通过下述代码检查git是否安装
git --version
接下来进行SSH认证,首先在ubuntu服务器上输入以下命令生成公钥密钥对
ssh-keygen -t rsa -C "10165101137@stu.ecnu.edu.cn"
通过以下命令获取公钥
cat /root/.ssh/id_rsa.pub
将公钥复制到Github上—Setting——Deployed Keys中,点击Add Key
通过以下命令SSH登录到Github
ssh -T git@github.com
Day14(2019.7.18)
使用XShell6远程登陆,登录名为arxiv,顺便试了一下Xftp6
Day15 2019.7.19
(GWU咨询)
尝试了apache2
安装命令
apt-get update
apt-get install apache2
初始设置
ufw app list
ufw allow 'Apache Full'
检查服务器状态
systemctl status apache2
如果要重启的话,使用如下命令
systemctl restart apache2
apache2系统安装在
cd /etc/apache2/
查看/修改默认配置
cat /etc/apache2/sites-enabled/000-default.conf
本地访问端口网站成功
curl http://localhost:80/
然而从其他无法通过http://202.120.80.35:80/访问
考虑服务器端口限制,下一步要首先获得可用端口列表
Day16
https://jingyan.baidu.com/article/154b46311a6feb28ca8f412e.html
https://www.cnblogs.com/xdp-gacl/p/4097608.html
Plan
要成功运行parse_pdf_to_txt.py似乎需要安装pdftotxt环境
https://stackoverflow.com/questions/23821204/read-pdf-in-python-and-convert-to-text-in-pdf
https://pypi.org/project/pdftotext/2.0.0/
其他有潜在价值的github项目
https://github.com/lukasschwab/arxiv.py
https://github.com/arxiv-vanity/arxiv-vanity
https://github.com/arXivTimes/arXivTimes
1、学习feedparser库,并整理
2、阅读arxiv官方API文档,并整理
3、安装Mongodb
4、学习jupyter
资源汇总
https://github.com/karpathy/arxiv-sanity-preserver
ssh -p 3003 arxiv@202.120.80.35
password: mail
html解析工具https://www.crummy.com/software/BeautifulSoup/bs4/doc/
一个小栗子https://github.com/cww97/PythonSpider
将本地文件上传至服务器(使用SCP命令,但是一直不能成功)
https://blog.51cto.com/superw/1943250
https://blog.csdn.net/weixin_41010198/article/details/81162719
https://www.cnblogs.com/chuanzhang053/p/9400732.html
使用winscp工具可以很方便的将本地文件上传至服务器
https://jingyan.baidu.com/article/c33e3f48f53f23ea15cbb5f0.html
查看系统日志
https://forum.ubuntu.org.cn/viewtopic.php?t=92892
python2升级到python3
https://www.cnblogs.com/zangyu/p/5574513.html
python3使用pip
https://blog.csdn.net/ao123056/article/details/79043637
References
【1】查看linux系统常用的命令,Linux查看系统配置常用命令
【2】https://arxiv.org/help/api/user-manual#_preface
【3】https://pypi.org/project/feedparser/
【5】https://static.arxiv.org/static/arxiv.marxdown/0.1/help/api/examples/python_arXiv_paging_example.txt
【7】实用的 Python 之 feedparser
https://blog.csdn.net/lanchunhui/article/details/51020566
【8】https://blog.csdn.net/weixin_41592575/article/details/81320874
【8】https://pythonhosted.org/feedparser/
【9】https://www.imooc.com/article/28992
【10】https://www.cnblogs.com/dengtou/p/8413609.html
【11】https://www.jianshu.com/p/00425f6c0936
【12】https://blog.csdn.net/fenghuibian/article/details/73350890
【13】linux下tomcat8安装详解(附图解步骤)
https://blog.csdn.net/a_18397219871/article/details/79466392
【14】 https://github.com/karpathy/arxiv-sanity-preserver/blob/master/README.md