使用Jsoup包抓取豆瓣Top250电影信息

本文介绍了使用Java的Jsoup库来抓取和解析豆瓣Top250电影信息的方法。通过理解Jsoup的工作原理,如DOM模型、Elements集合和Node对象,可以有效地提取所需数据。抓取的电影信息最终被存入表格,利用了poi包处理Excel文件。
摘要由CSDN通过智能技术生成

Java制作爬虫程序主要用到的网页解析工具Jsoup,而在Python使用的是漂亮汤,Jsoup能向JS和JQuery一样获取网页文件的模型(dom),是解析网页文件的有力工具,使用方法见:Jsoup详解(一)——Jsoup详解

Jsoup的使用方法和JS基本相同,进入豆瓣Top250界面:


找到链接地址:

String[] url=new String[25];
		//进入Top250的界面,抓取单个电影的网址
		Document document=Jsoup.connect("https://movie.douban.com/top250?start="+j*25).get();
        Elements bd=document.select("div.hd");
        for(int i=0;i<bd.size();i++)
        {
   
        	Elements info=bd.get(i).select("a[href]");
        	url[i]=info.attr("href");
        }
        return url;

节这我们需要一个函数,向这个函数传递URL后可以获得网页的全部信息。
如果文本在标签之内,选择这个标签后,text方法提取文本即可,如果不在,比如,在<br>之前,这样的内容属于文本节点,可找邻近的节点,然后使用nextSibling()等方法获得文本节点。需要注意的是:
1、Document:文件对象模型(dom)
2、Elements:元素对象集合
3、Node:节点对象
这三者从大到小排列,一般的节点对象没有text方法,用outhtml方法获取它的值,除了文本节点。

//抓取电影名
		String name=document.select("span[property=v:itemreviewed]").text();
		info[0]=name;
		//抓取导演名
		String director=document.select("a[rel='v:directedBy']").text();
		info[1]=director;
		//抓取编剧
		String pl=document.select("span.attrs").get(1).text();
		info[2]=pl;
		//抓取演员名
		String actor=document.select("span.attrs").get(2).text();
		info[3]=actor;
		//抓取电影类型
		String type=document.select("span[property='v:genre']").text();
		info[4]=type;
		//对是否含有官方网站进行讨论
		int i=4;
		if(document.select("span.pl").get(i).text().contains("官方网站"))
		{
   
			i++;
		}
		//抓取产地国家,它的内容是国家标签的下一个节点
		String country=document.select("span.pl").get(i).nextSibling(
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值