31 Jan 2017

爬虫流程记录

  1. 配置服务器:主要流程参考百度经验
  2. 更改&上传代码
  3. 爬取
  4. 检测
  5. 爬取结束
    1. 检测数据
    2. 抓取数据回本地或上传至百度云
  6. 再爬取

配置服务器

参考百度文献

更改并上传代码

  1. 主要是更改5个文件中的AutoSearch中的帐号为自己的信息,两个服务器各使用3个帐号(102-104,105-107)。
    • \ResearcherGoLinux\ResearcherGoAccounterTest\AccounterTestSpider\ResearcherGoAccounterTest\ResearcherGoAccounterTest\spiders\ResearchGoAutoSearch.py
    • \ResearcherGoLinux\WOS_Spider
      • Spider_*...\ResearchGoAutoSearch.py
  2. 替换WOS_Scheduler/Jounral_list中的内容为自己的Journal_list,30个一批,末尾不能有空行
  3. 上传代码至服务器的/tmp下(以后每爬取完成一次后用/tmp下的代码替换掉使用的代码):windows命令行进入putty目录中并执行
    pscp -r source_dir root@IP:/tmp
  4. putty连接到服务器,复制代码到/home下
    cp -r /tmp/source_dir /home

爬取

转换换行符:进入服务器中的Journal_list所在目录
sed -i "s/\r//" Journal_List.txt Journal_List_significance.txt
爬取开始前开启监控进程:
1. /home/ResearcherGoLinux/WOS_Monitor/ResearcherGoMonitor/ResercherGoMonitor.py
2. /home/ResearcherGoLinux/Progress_Monitor/ProgressMonitor/ProgressMonitor.py
3. 对上面两个文件赋予777权限并执行: chmod 777 target python ./target
查看本用户所在执行的进程:

ps -a ps -a | grep -c scrapy #应当小于开启调度程序时的输出值(一般为1) ps -a | grep -c python

查看空间使用:
Top

开始爬取:

  1. 进入/home/ResearcherGoLinux/WOS_Scheduler/ResearcherGoScheduler/ 写777权限给ResearcherGoScheduler.py并执行
  2. 输入最大scrapy数:1
  3. 输入爬取期刊的起始与结束号
  4. priority:General
  5. input:Paper
  6. input:year

爬取结束

调度程序执行完成不一定表示已经爬取结束,需要查看是否还有scrapy进程在执行,若没有则代表爬取结束
ps -a | grep -c scrapy

检测数据

  • 查看ScheduleData(已经调度的期刊)
  • ProgressData(已经爬取的期刊)
  • /WOS_Spider/ General和New_Data是需要传回的数据文件夹
    • /Data/General
    • /Json_Data/New_Data

数据传回

先将数据(General&New_Data)压缩到/tmp下,最好使用相对路径(先进入到General或New_Data所在的目录下):
zip -r /tmp/xxx.zip General zip -r /tmp/xxx.zip New_Data 利用pscp将数据传回:
pscp root@IP:/tmp/source.zip target.zip 利用百度云将数据传回:

再次爬取

  1. 再次爬取前将/home下的代码删除并从/tmp下重新复制过来. 将/tmp下的压缩数据也删除避免与后面的重复 rm -r target cp -r /tmp/target /home
  2. 测试帐号: ResearcherGoLinux\ResearcherGoAccounterTest\AccounterController\AccounterCScheduler.py: 赋权限并执行->input:Personal…
  3. 重复爬取流程

Tags:
Stats: