java爬虫抓取网页数据( 爬取豆瓣电影榜单网页源代码解析及关键信息获取)

优采云 发布时间: 2021-09-22 20:10

  java爬虫抓取网页数据(

爬取豆瓣电影榜单网页源代码解析及关键信息获取)

  java crawler(一):Douban电影列表爬行

  前言

  近年来,随着大的队友增加新的功能,以大制作的应用程序,新功能需要被用来抓取花瓣,QQ音乐,哩哩哩@ @@@@所以,写下博客中记录,而你将与您分享一些经验。

  流程图

  

  步骤一、爬行豆瓣电影列表页面源代码

  为了实现这一目标,第一步是获取Douban流行电影列表的Web源代码。我们使用JSoup库中的Connect方法建立连接,并使用UseerAgent方法模拟Web Access的浏览器,然后使用POST方法获取数据。获取HTML格式的Web源代码,如下所示:

  

  二、网解解

  HTML格式分析:

  我们发现电影信息存储在上图中,然后我们只需要解析数据以获取数据。在jsou中找到选择方法到此区域,然后使用attr方法选择所需的信息,例如我们在“href”下的电影链接,“标题”电影名称,“src”电影图片等等。

  整体代码如下

  import java.io.IOException;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;

public class getDB_film {

public static void main(String[] args) throws IOException {

String url = "http://movie.douban.com/chart";

//获取html

Document doc = Jsoup.connect(url)

.maxBodySize(Integer.MAX_VALUE)

.data("query", "Java")

.cookie("auth", "token")

.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134")

.timeout(10000)

.post();

//System.out.println(doc);

//逐层分析html

Elements a = doc.select("div[class=\"\"]");

//System.out.println(a);

Elements b= a.select("a[class=nbg]");

//String c = b.attr("href");

//System.out.println(b);

//System.out.println(c);

for(Element element : b){

String video_url = element.attr("href"); // 电影链接地址

String video_name = element.attr("title"); // 电影名字

Elements d= element.select("img");

String img_url = d.attr("src"); //电影图片

System.out.println("video_name"+video_name);

System.out.println("img_url"+img_url);

System.out.println("video_url"+video_url);

}

}

}

  结果如下:

  

  三、爬行单个电影网源代码

  获取电影列表后,我们可以获得对应于每部电影的URL,您可以输入相应的电影的网页以获取源代码。源代码爬行后,HTML分析,过程类似于上述爬行电影列表,也不会再进行描述。下图显示了“海王”的电影信息。

  

  四、源源解和关键信息获得

  我们可以获得电影细节,因为我们拥有我们功能的功能,我们只爬上电影导演,电影主演,情节介绍,电影图片等信息。每个人都可以返回基于网页所需的信息。

  单张电影信息获取总体代码如下所示

<p>import java.io.IOException;

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import com.google.common.base.CharMatcher;

public class getFilm_information {

public static void main(String[] args) throws IOException {

String url = "https://movie.douban.com/subject/27119586/";

//获取html

Document doc = Jsoup.connect(url)

.maxBodySize(Integer.MAX_VALUE)

.data("query", "Java")

.cookie("auth", "token")

.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134")

.timeout(10000)

.post();

// System.out.println(doc);

Elements a = doc.select("script[type=\"application/ld+json\"]");

String film_Json = a.toString();

String film_json = film_Json.substring(film_Json.indexOf(">")+1,film_Json.lastIndexOf("

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线