Java多线程网络爬虫(时光网为例).doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java多线程网络爬虫(时光网为例)

Java多线程网络爬虫(时光网为例) 多线程简介 Java多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。 本文所采用的方法是继承Thread类的方法,Thread本质上也是实现了Runnable接口的一个实例,它代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法,它将启动一个新线程,并执行run()方法。这种方式实现多线程很简单,通过自己的类直接extend Thread,并复写run()方法,就可以启动新线程并执行自己定义的run()方法。 多线程网络爬虫 为了加快爬虫速度,可以采用多线程网络爬虫的方法。以下我以时光网为例,写一个简单的网络爬虫。 分析要爬的数据 如下面数据,为我爬的一些电影预告片的初始信息,存在数据库movie的这张表中。 下表是我所要爬的预告片相关的数据,包括预告片的id(prmovieId),预告片的链接(url),预告片对应的电影id(movieId),预告片的标题(title)。后面会在model框架中,你会发现,我会把这些待爬取的数据封装在MtimeModel中。 网络抓包 通过网络抓包的方式,查看数据的获取方式、方法。即真实请求的地址及返回数据的格式(html or json). 爬虫框架 如果想了解,为什么这样写,请看我前面的介绍网络爬虫框架的文章。 model model里面主要写了三个,我们需要的,一个是MtimeUrl封装的是数据库movie这张表中某些数据对应的信息。 MtimeModel封装的是需要爬取数据的信息。 package org.autodata.model; /* * author:合肥工业大学 管院学院 钱洋 *1563178220@ */ public class MtimeUrl { //待爬取电影的id和对应的连接 private String id; private String url; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } 爬取的数据为: package org.autodata.model; /* * author:合肥工业大学 管院学院 钱洋 *1563178220@ */ public class MtimeModel { private String prmovieId; private String url; private String movieId; private String title; public String getPrmovieId() { return prmovieId; } public void setPrmovieId(String prmovieId) { this.prmovieId = prmovieId; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getMovieId() { return movieId; } public void setMovieId(String movieId) { this.movieId = movieId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } Json数据的解析model

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档