java 爬虫在 netbeans 里运行和单独运行结果不一样

在做内容测试的时候,发现我的爬虫(前些文章略有提及)在 netbeans 里面能够成功爬取网页内容,而单独运行时,给定一个 url,爬到的网页却与在浏览器里面打开 url 的网页完全不一样,这是一个很诡异的问题。我在相应位置增加代码,把网页写入某一个文件。结果发现,在 netbeans 里运行和单独运行两次写的文件的编码不一样,一个是 GBK 的编码,一个是 UTF-8  的编码,(我希望爬虫以 UTF-8 的方式运行,考虑到程序里面的字符串和数据库里面的字符串对应,都应该使用 UTF-8 编码)。于是,我猜测,在
netbeans 里面是以 UTF-8 编码方式运行的,而单独运行是以 GBK 的编码方式运行的,当从数据库(UTF-8编码存储)读入一个带中文的 url 时,前者能够正确处理,而后者因为采用 GBK 编码,它以 GBK 的眼光去看待这个 UTF-8 编码的 url,就造成了 url 的扭曲。

如,我想抓取的 url 是

http://news.baidu.com/ns?ct=1&rn=20&ie=utf-8&bs="湖北法雷奥车灯有限公司"&rsv_bp=1&sr=0&cl=2&f=8&prevct=no&word="湖北法雷奥车灯有限公司"&tn=newstitle&inputT=0&companyId=21510

它在数据库中以 UTF-8 的方式存储,结果读入一个运行环境为 GBK 语言环境的程序里面,程序会以 GBK 的方式去识别这个 url ,那么,原始 url 在进入程序后,就变成了

http://news.baidu.com/ns?ct=1&rn=20&ie=utf-8&bs="某些字符"&rsv_bp=1&sr=0&cl=2&f=8&prevct=no&word="某些字符"&tn=newstitle&inputT=0&companyId=21510

它把原先我要在百度新闻里面搜索的关键串:“湖北法雷奥车灯有限公司”变成了 “某些字符”。(这里的“某些字符”并不是这个字符串本身,而确实指某些字符)

显然它并不能按我所想的去访问某个网页,因此,相当于它会去搜索一些稀奇古怪的内容。

在单独运行一个 jar 时,加上 -Dfile.encodeing=UTF-8  的选项,即是选择使用 UTF-8 的环境去运行这个程序。

如:

java -Dfile.encoding=UTF-8 -jar Spider.jar

java 爬虫在 netbeans 里运行和单独运行结果不一样

时间: 2024-10-03 22:15:34

java 爬虫在 netbeans 里运行和单独运行结果不一样的相关文章

JAVA设置环境变量和在DOS下运行java程序

在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http://blog.sina.com.cn/s/blog_639403840100i5rt.html 下面先来了解一下什么是dos吧 dos 我们使用计算机接触最频繁的就是DOS.DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是一种面向磁盘的系统软

【java爬虫】---爬虫+基于接口的网络爬虫

爬虫+基于接口的网络爬虫 上一篇讲了[java爬虫]---爬虫+jsoup轻松爬博客,该方式有个很大的局限性,就是你通过jsoup爬虫只适合爬静态网页,所以只能爬当前页面的所有新闻.如果需要爬一个网 站所有信息,就得通过接口,通过改变参数反复调该网站的接口,爬到该网站的所有数据信息. 本博客以爬金色财经新闻信息为对象,去爬取该网站从建站以来发表的所有新闻信息.下面会一步一步讲解.这里重点重点讲思路,最后我会提供完整源码. 第一步:找接口 你要获得该网站所有新闻数据,第一步当然是获得接口,通过接口

JAVA爬虫 WebCollector

爬虫简介: WebCollector是一个无须配置.便于二次开发的JAVA爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫. 爬虫内核: WebCollector致力于维护一个稳定.可扩的爬虫内核,便于开发者进行灵活的二次开发.内核具有很强的扩展性,用户可以在内核基础上开发自己想要的爬虫.源码中集成了Jsoup,可进行精准的网页解析. 量级: WebCollector最常用的爬取器BreadthCrawler使用2^24的布隆过滤器进行URL管理,可处理2^24量级

webmagic的设计机制及原理-如何开发一个Java爬虫 转

此文章是webmagic 0.1.0版的设计手册,后续版本的入门及用户手册请看这里:https://github.com/code4craft/webmagic/blob/master/user-manual.md 之前就有网友在博客里留言,觉得webmagic的实现比较有意思,想要借此研究一下爬虫.最近终于集中精力,花了三天时间,终于写完了这篇文章.之前垂直爬虫写了一年多,webmagic框架写了一个多月,这方面倒是有一些心得,希望对读者有帮助. webmagic的目标 一般来说,一个爬虫包括

【转】如何配置EditPlus中Java运行环境,运行Java程序

如何配置EditPlus中Java运行环境,运行Java程序 http://jingyan.baidu.com/article/86112f13725e2e2736978711.html 分步阅读 EdltPlus是一款不错的Java代码编辑器,使用EditPlus对于语言代码格式自动生成,省去了我们很多不必要的时间,且其具有小巧,省内存的优势,对于我们平时编写一些简单的Java程序很有帮助,下面小编就为大家介绍下如何配置EditPlusJava环境编辑,使其可以直接运行Java程序(怎么样在e

Java爬虫实战(二):抓取一个视频网站上2015年所有电影的下载链接

前言:这是Java爬虫实战的第二篇文章,在第一篇文章仅仅只是抓取目标网站的链接的基础上,进一步提高难度,抓取目标页面上我们所需要的内容并保存在数据库中.这里的测试案例选用了一个我常用的电影下载网站(http://www.80s.la/).本来是想抓取网站上的所有电影的下载链接,后来感觉需要的时间太长,因此改成了抓取2015年电影的下载链接. 注:文末有我抓取到的整个列表的下载链接(包括:电影名称和迅雷下载链接) 一 原理简介 其实原理都跟第一篇文章差不多,不同的是鉴于这个网站的分类列表实在太多,

超简单的java爬虫

最简单的爬虫,不需要设定代理服务器,不需要设定cookie,不需要http连接池,使用httpget方法,只是为了获取html代码... 好吧,满足这个要求的爬虫应该是最基本的爬虫了.当然这也是做复杂的爬虫的基础. 使用的是httpclient4的相关API.不要跟我讲网上好多都是httpclient3的代码该怎么兼容的问题,它们差不太多,但是我们应该选择新的能用的接口! 当然,还是有很多细节可以去关注一下,比如编码问题(我一般都是强制用UTF-8的) 放码过来: 1 package chris

JAVA爬虫实践(实践三:爬虫框架webMagic和csdnBlog爬虫)

WebMagic WebMagic是一个简单灵活的Java爬虫框架.基于WebMagic,你可以快速开发出一个高效.易维护的爬虫. 采用HttpClient可以实现定向的爬虫,也可以自己编写算法逻辑来实现多线程,创建链接池,自动解析网页代码获取请求链接,封装正则表达式等等. 但是如果使用框架,就不再需要考虑爬虫的逻辑,只需要专注HTML内容的解析和获取. 引用WebMagic后写一个爬虫只需要编写一个类实现PageProcessor接口,实现两个方法. 一个WebMagic例子 package

Appium(JAVA)Windows 7系统搭建及示例运行

Appium(JAVA)Windows 7系统搭建及示例运行 分类: Appium 2014-11-14 17:44 4323人阅读 评论(2) 收藏 举报 1.搭建Android环境 http://blog.csdn.net/jlminghui/article/details/39582895 注:需要设置系统变量“ANDROID_HOME”. 2.安装Node.js http://www.nodejs.org/download/ 下载相关操作系统的版本 安装过程,一路“Next”. 3.安装