优草派  >   Python

Java爬虫与python爬虫有什么区别?通过实例对比来了解

陈立鑫            来源:优草派

很多学习了python和Java的小伙伴们想了解一下Java和python的爬虫哪个更有优势,他们的区别是什么,接下来让小编来告诉你吧。

Java爬虫与python爬虫有什么区别?通过实例对比来了解

其实呢,python做爬虫语法和代码非常简单简洁。相对来说的话,Java的语法逻辑比python严格许多,而且代码也更复杂,很容易让开发者出现语法错误,从而降低了工作效率。

下面让我们来看实际案例来对比吧,示例如下:

(一)url请求

java代码如下:

public String call (String url){
            String content = "";
            BufferedReader in = null;
            try{
                URL realUrl = new URL(url);
                URLConnection connection = realUrl.openConnection();
                connection.connect();
                in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"gbk"));
                String line ;
                while ((line = in.readLine()) != null){
                    content += line + "
";
                }
            }catch (Exception e){
                e.printStackTrace();
            }
            finally{
                try{
                    if (in != null){
                        in.close();
                    }
                }catch(Exception e2){
                    e2.printStackTrace();
                }
            }
            return content;
        }

python代码如下:

# coding=utf-8
import chardet
import urllib2
url = "http://www.baidu.com"
data = (urllib2.urlopen(url)).read()
charset = chardet.detect(data)
code = charset['encoding']
content = str(data).decode(code, 'ignore').encode('utf8')
print content

是不是代码量比JAVA少不少呢,而且非常简洁明了。

(二)正则表达式

java代码如下:

public String call(String content) throws Exception {
            Pattern p = Pattern.compile("content":".*?"");
            Matcher match = p.matcher(content);
            StringBuilder sb = new StringBuilder();
            String tmp;
            while (match.find()){
                tmp = match.group();
                tmp = tmp.replaceAll(""", "");
                tmp = tmp.replace("content:", "");
                tmp = tmp.replaceAll("", "");
                sb.append(tmp + "
");
            }
            String comment = sb.toString();
            return comment;
        }
    }

python代码如下:

import repattern = re.compile(正则)
group = pattern.findall(字符串)

看到这里,python爬虫和java爬虫的区别就不用我来说了吧,通过正则表达式这个案例明确的能看出JAVA的需要近二十行的代码量而python只需要两行即可搞定,这下大家都知道python和Java的爬虫区别了吧。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行