ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

做个爬虫看看豆瓣电影排行的电影的各项信息

2021-05-13 16:02:01  阅读:202  来源: 互联网

标签:.+ java String Pattern 电影 爬虫 connection 豆瓣 import


做个爬虫看看豆瓣电影排行的电影的各项信息

合理利用正则表达式,和懂得加个request header 不然网页会拦截。

package zhengze;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.net.URL;
import java.net.MalformedURLException;
import java.net.HttpURLConnection;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
class Hello{
private String name;
private static HttpURLConnection connection = null;

public String httpRequest(String url){
String content = "";
try{
URL u = new URL(url);
connection = (HttpURLConnection)u.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.56");//connection.setRequestProperty
int code = connection.getResponseCode();
if(code == 200){
InputStream in = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(in,"utf-8");
BufferedReader reader = new BufferedReader(isr);
String line = null;
while((line = reader.readLine()) != null){
content += line;
}
}
}catch(MalformedURLException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}finally{
if(connection != null){
connection.disconnect();
}
}
return content;
}
}

public class Test {
	public static void main(String[] args) {
		
		Hello x=new Hello();
		String fts =  x.httpRequest("https://movie.douban.com/chart");
		//String regex = "<span style=\"font-size:13px;\">(.+?)</span>.+?<p class=.+?>(.+?)</p>.+?<span class=\"rating_nums\">(.+?)</span>"; 
		String regex = "<a class=.+? href=.+?  title=\"(.+?)\">.+? <span style=\"font-size:13px;\">(.+?)</span>.+?<p class=.+?>(.+?)</p>.+?<span class=\"rating_nums\">(.+?)</span>"; 
		Pattern p = Pattern.compile(regex);  
	    Matcher m = p.matcher(fts);  
	    while(m.find())
	    {
	      System.out.println(m.group(1)+" "+m.group(2) +"   "+m.group(4)+ "  :  " +m.group(3));
	      String regex2="<div class=\"pl2\">.+?<a href=\"(.+?)\"  class=\".+?\">";
		    Pattern p2=Pattern.compile(regex2);
		    Matcher m2=p2.matcher(fts);
		    while(m2.find()) {
		    	System.out.println(m2.group(1));
		    	String fts2=x.httpRequest(m2.group(1));
		    	String regex3=" <span class=\"short\">(.+?)</span>";
		    	Pattern p3=Pattern.compile(regex3);
		    	Matcher m3=p3.matcher(fts2);
		    	while(m3.find()) {
		    		System.out.println(m3.group(1));
		    	}
		    }
	      }
	  
	}

}

放个运行截图

在这里插入图片描述

是不是很简单。

标签:.+,java,String,Pattern,电影,爬虫,connection,豆瓣,import
来源: https://blog.csdn.net/hhuhgfhggy/article/details/116753566

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有