java爬虫抓取网页数据( 爬取豆瓣电影榜单网页源代码解析及关键信息获取)
优采云 发布时间: 2021-09-22 20:10java爬虫抓取网页数据(
爬取豆瓣电影榜单网页源代码解析及关键信息获取)
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("