很多学习了python和Java的小伙伴们想了解一下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的爬虫区别了吧。