linux远程运行jar包关闭窗口后程序就停了?
在Linux远程运行JAR包时,是不能关掉窗口程序的,否则程序也会终止。其中nohup 表示后台运行,关闭窗口后也也继续执行,&意思是终端连接的时候后台运行,终端断了进程也会停。
具体解决方法是使用nohup命令,在窗口程序的前面加上nohup,程序的后面加上&,这样程序就会一直执行直到结束,而不会因为关闭窗口程序而停了。
例子,比如:nohup php spider.php &回车,然后提示一堆东西,再次回车,回到shell界面。这就可以了。
测试的网站不想被百度抓取,也不想搜索关键词排名,应该怎设置?
当网站设计完成后,网站上线前我们应该给网站做一个基本的测试,主要是看看网站还有没有什么问题。如果不给网站做测试就上线,就有可能出现问题,直接导致网站在搜索引擎的排名。那么,给网站测试,你该关注哪些指标呢?
1、网站定位
网站一定要有准确的定位,网站的标题、核心关键词、描述都要准确,查看主页,栏目页面,内容页面,有没有错误的,不要再网站的每个页面使用相同的标题,关键词和描述,这样对网站没有任何好处的。
2、服务器速度
可以利用一些工具来检测服务器的反应时间以及是否超时。
3、HTTP状态码
当网站没有做优化的时候,网站的主页会出现四条路径,这四条路径会分散网站的权重,每条得到四分之一。301重定向对于网站来说是非常重要的,可以给网站首页设置默认index.html。还有就是404页面,404页面可以降低用户的跳转率,提高用户体验。
4、网站内容的添加
刚上线的网站内容很少,不要一次性添加大量内容,需要循序渐进的添加内容,内容最好是原创的,这样对网站的发展才有所帮助。
5、文章页优化
当进入到网站内容页时候,可以在网站的底部添加一些相关链接,或者用户喜欢的主题,这样可以提高用户停留在网站的时间,同时也能提高用户体验,增加网站排名。但要记住,不要把网站的每个页面弄得相关性太强了,这样会影响到网站的优化。
6、robots.txt设置
禁止搜索引擎抓取网站的无关页面,禁止蜘蛛爬虫进入到网站。
这些就是网站上线前必不可少的准备工作,只有经过了层层检测,网站才能正式上线,这样才对网站顺利的运行下去。
想写代码,特别是爬虫代码,怎么学习?
不清楚你为什么想学习爬虫代码,可能是好奇或者是出于学习的目的吧。爬虫说的明白、清楚一点,就是解析网页,获取数据,后续就是数据处理的过程。目前来说,网上也有现成的爬虫软件,像八爪鱼,Forespider等,如果你急着爬取数据,而又不懂编程的话,这些软件你可以学学,官网都有详细的教程和例子,花费几个小时就能掌握。至于你想学习代码的话,目前主流的编程语言,像python,java,php,nodejs等都可以做爬虫,也有现成的包或框架,你直接使用就行,要学的内容主要如下:
1.熟悉基本的网页知识。像前端的html,css,js等,我们要爬去的数据大部分都存储在网页中,你需要对网页结构和基本标签有个基本了解,没必要熟练所掌握,大概看得明白就行,如果你还没有一点基础的话,建议花费个一两天时间学习一下,网上的教程很多,你可以学习一下,如菜鸟教程等:
2.再着就是要会使用浏览器的开发者工具,大部分情况下,网页的数据都是静态的,在网页源码中,但有些情况下,数据是异步加载的的,动态的,可能是一个json文件,这个时候你就需要会抓包分析,找到真实数据的URL,获取数据:
3.学一门编程语言。如果你没有基础的话,我建议学习python,简单易学,容易上手,开发效率高,生态环境良好,社区活跃,有大量的第三方包可以使用,像专门爬虫的包urllib,urllib2,requests等,都很好学,花个个把小时,你就会基本使用:
4.基本入门后,你就可以试着学习爬虫框架了,可以提高你的开发效率,不用重复造轮子,很快就能搭建一个爬虫系统,像python的scrapy框架等,其他语言也都会提供爬虫框架,你可以深入的学习一下,一定会对你有大的帮助:
我总结的就是这几点,我也才入门爬虫,学习的时间不长,主要是需要网上的数据做分析才学的,至于后面如何分析和处理数据,也才开始慢慢接触,只要你用心学习,多做个例子,多调试调试代码,很快就能掌握爬虫的,对于爬取网上大部分数据来说,绝对没有问题,希望以上分享的内容能对你有所帮助吧,可以共同探讨、学习。
想写代码,还是比较容易的,前提是学校学过编程,最好通过计算机二级,一般都没有问题。写代码,需要先确定自己要学的语言,而做爬虫相关的,几乎所有的网络编程语言都支持吧,就我接触的几种编程语言中,使用比较多的有Java、PHP、Python、Go等,而做爬虫,我在Java和Python编程语言方面有所实践,下面主要说说这两种编程语言在爬虫中的表现吧。
要做爬虫,Web开发的一些必备技术是不可或缺的,如HTML、CSS以及一些JS等,如果不懂这些,写爬虫就是个笑话。这些也是做爬虫的先决条件,要做爬虫,这些必须要学,并且有自己的学习心得。写爬虫需要先读懂目标网站的相关html源码,针对所爬取的内容决策获取的方式,常见的有正则表达式提取、Document元素获取等。
网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:
通用网络爬虫(General Purpose Web Crawler)
聚焦网络爬虫(Focused Web Crawler)
增量式网络爬虫(Incremental Web Crawler)
深层网络爬虫(Deep Web Crawler)。
实际的网络爬虫系统通常是几种爬虫技术相结合实现的。
有了Web开发的基础之后,我们再来看看爬虫的事。我们先聊聊Java做爬虫的技术点,使用Java做爬虫,主要是通过HttpClient来实现的。使用HttpClient发送请求、接收响应很简单,一般需要如下几步:
创建HttpClient对象。
- 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。
- 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数。
- 调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。
- 调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。
- 释放连接。无论执行方法是否成功,都必须释放连接。
Java除了使用HttpClient做爬虫之外,还可以通过Jsoup,但是相对于HttpClient,在抓取上Jsoup比较弱,主要是使用扩展htmlparser的功能吧,解析html。相关的示例代码都可以在网上很容易找到,懂得一些Java基础和Web基础的读者都可以试试。
下面来聊聊Python在爬虫上的表现,Python标准库中,用于网页数据采集的有urllib库,同样,有很多优秀的开源库,像BeautifulSoup库、Requests库等。 目前我学Python做爬虫也处于初始阶段,使用过的库有标准库中的urllib、re库,非标准库中的bs4、selenium。由于刚开始实践,各方面认识还不够,在我的爬虫代码中urllib做网页数据采集用的,re是正则验证的库,使用bs4解析Document,比较简单的获取数据,我使用selenium自动打开浏览器,获取懒加载的图片之类的数据。除此之外,在网上还找到一些库,这些都是以后Python学习的方法,也推荐给各位。
功能齐全的爬虫
grab – 网络爬虫框架(基于pycurl/multicur)。
scrapy – 网络爬虫框架(基于twisted),不支持Python3。
pyspider – 一个强大的爬虫系统。
cola – 一个分布式爬虫框架。
portia – 基于Scrapy的可视化爬虫。
restkit – Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。
demiurge – 基于PyQuery的爬虫微框架。
总体而言,写爬虫Python比较清爽,有优势,Java就比较笨重,用Java写爬虫,有大炮打蚊子之嫌。而关于PHP和GO写爬虫只是听说过,本人没有这方面的实践,暂不多说。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。

