package 虎牙斗鱼直播平台;

import java.io.IOException;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.jsoup.Connection;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONArray;

import com.alibaba.fastjson.JSONObject;

import com.gargoylesoftware.htmlunit.BrowserVersion;

import com.gargoylesoftware.htmlunit.WebClient;

import com.gargoylesoftware.htmlunit.html.HtmlAnchor;

import com.gargoylesoftware.htmlunit.html.HtmlPage;

public class 抓取斗鱼 {

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

int id=1;

java.sql.Connection con;

Class.forName("com.mysql.jdbc.Driver");

System.out.println("数据库驱动加载成功");

con = DriverManager.getConnection("jdbc:mysql:"

+ "//127.0.0.1:3306/db?characterEncoding=utf-8", "root", "123456");

System.out.println("数据库连接成功");

final WebClient webClient = new WebClient(BrowserVersion.CHROME);//

webClient.getOptions().setJavaScriptEnabled(true);

webClient.getOptions().setThrowExceptionOnScriptError(false);

webClient.getOptions().setCssEnabled(false);

HtmlPage page=webClient.getPage("https://www.douyu.com/directory/all");

Listanchors=page.getAnchors();

Listjsanchors=new ArrayList();

for(HtmlAnchor anchor:anchors)

{ String href=anchor.getAttribute("href");

/*

* 抓取js的链接 然后获取有用的信息

*/

if("#".equals(href))

{

{jsanchors.add(anchor);}

}

}

HtmlAnchor t1=jsanchors.get(jsanchors.size()-3);System.out.println(t1.asText());//加载js才能获取页面数

int number=Integer.parseInt(t1.asText());//页面数

for(int i=1;i

String url="https://www.douyu.com/gapi/rkc/directory/0_0/"+i;

Connection conn = Jsoup.connect(url).ignoreContentType(true).timeout(2000);

// .header("Accept", "text/plain, */*; q=0.01")

// .header("Accept-Encoding", "gzip, deflate, br")

// .header("Accept-Language", "zh-CN,zh;q=0.9")

// .header("Connection", "keep-alive")

// .header("content type", " text/*, application/xml, or application/xhtml+xml")

// .header("Mimetype", "application/json")

// .header("charset", "utf-8")

// .header("X-Requested-With", "XMLHttpRequest")

// .header("Host", "www.douyu.com")

// .header("Cookie", "dy_did=1c44f89110e75337d1bb4ab500011501; acf_did=1c44f89110e75337d1bb4ab500011501;"

// + " smidV2=2018042210064794358e4a60e148cb2044dd7ccc979fb90028d0af372db9810; "

// + "Hm_lvt_e99aee90ec1b2106afe7ec3b199020a7=1524114219,1524218776,1524383249,1524660154;"

// + " Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=1524660429")

// .header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36");

Document doc=conn.get();

// System.out.print(doc);

// int page=0;//页数

try{

JSONObject jsonObj = JSON.parseObject(doc.text());

JSONObject jsonOb=JSON.parseObject(jsonObj.getString("data"));//获取data的json内容

JSONArray jarr=jsonOb.getJSONArray("rl");//

for(Object jar:jarr)

{

JSONObject js=JSON.parseObject( jar.toString());//获取更具体的json值

//System.out.println(js);

/*

* 写入数据库

*/

int renshu2=Integer.parseInt(js.get("ol").toString());

String type=js.get("c2name").toString();

String sql2="insert into satuday(name,href,number,type)value(?,?,?,?)";//插入mysql

PreparedStatement pstmt = con.prepareStatement(sql2);

pstmt.setString(1, (String) js.get("nn"));

pstmt.setString(2, "https://www.douyu.com"+js.get("url"));

pstmt.setInt(3, renshu2);

pstmt.setString(4,type );

pstmt.execute();

System.out.println(js.get("nn")+""+id+++""+type+renshu2);

}

}

catch(Exception e) {System.out.println(e.getMessage());}

}

con.close();

}

}

java斗鱼_java爬取斗鱼:与虎牙对比相关推荐

  1. 闲鱼java系统_java爬取闲鱼商品信息(一)

    闲鱼真是一个很神奇的地方,= =能让我等学生狗不用花很多钱就能体验科技的乐趣,当然,前提是别翻车. 好了,这当然是题外话,这阵子总结了自己学习的一些技能,就写一个对闲鱼的数据抓取来练练手. 预计达到的 ...

  2. java 段子_java爬取捧腹网段子

    先上效果图: 准备工作: /** * 建立http连接 */ public static String Connect(String address) { HttpURLConnection conn ...

  3. 使用selenium自动爬取斗鱼直播平台的所有房间信息

    使用selenium自动爬取斗鱼直播平台的所有房间信息 文章目录 使用selenium自动爬取斗鱼直播平台的所有房间信息 使用selenium实现动态页面模拟点击 什么是selenium? selen ...

  4. 爬虫之selenium爬取斗鱼网站

    爬虫之selenium爬取斗鱼网站 示例代码: from selenium import webdriver import timeclass Douyu(object):def __init__(s ...

  5. Python---20行代码爬取斗鱼平台房间数据(下)

    在上一篇中,已经详细的讲解了如何获取数据,接下来是深度处理数据,这里调用xlsxwriter库来制作Excel表格. 工具:Python3.6.5,Pycharm 1.模块介绍 XlsxWriter模 ...

  6. 利用python爬取飞猪信息_Python---20行代码爬取斗鱼平台房间数据(下)-阿里云开发者社区...

    在上一篇中,已经详细的讲解了如何获取数据,接下来是深度处理数据,这里调用xlsxwriter库来制作Excel表格. 工具:Python3.6.5,Pycharm 1.模块介绍 XlsxWriter模 ...

  7. 利用Python爬虫爬取斗鱼直播间信息,以及直播的实际人数!

    首先我准备利用mysql来存储我爬取的信息,建一个host表如下: 然后下载pymysql ,利用它与数据库链接,因为在这里我只涉及到写入的操作: Unit_Mtsql 然后就是使用Beautiful ...

  8. 利用python爬虫爬取斗鱼图片(简单详细)

    关于 在一个安静的夜晚,我缓慢的打开了电脑,望着已经睡着的父母,我轻轻的把门关上,看着斗鱼颜值主播的魅力,我不尽感叹,要是每天都可以不需要那么麻烦的去看那该有多好! 于是我想起了最近刚学的爬虫,嘴角露 ...

  9. 实时爬取斗鱼直播时的弹幕消息

    最近想爬取实时消息,上网查了下,所以爬取斗鱼直播的弹幕消息做了下练习,这个开源的代码有很多,但是具体是怎么爬取到的还是要仔细地研究下.想爬取斗鱼的弹幕消息,按照常用的做法是打开网页用抓包工具抓包,但是 ...

最新文章

  1. android 绘画,Android绘图基础
  2. shell脚本api接口考虑并发问题的可行性操作
  3. 一道简单的Fibonacci
  4. linux服务器指示灯,【转】明明白白你的Linux服务器——故障篇 | 旺旺知识库
  5. mybatis源码分析、底层原理
  6. linux 6.9切换中文,Linux Centos6.9 中文乱码问题处理
  7. Idea 进行断点调试的 快捷键
  8. Eclipse主题切换
  9. 关于海康相机ip地址无法更改问题
  10. 基于STM32F103完成对SD卡的数据读取操作
  11. 问卷分析SPSS+AMOS实证步骤
  12. 《精通Unreal Engine 3 卷1:3D游戏关卡设计》
  13. java中正则验证邮箱手机格式
  14. Lumion 9.0 建筑日景快速渲染实例教程
  15. RS-485串口通讯测试及四路集线器功能探究
  16. 使用标准输出流(system.out)和打印流 (PrintWriter)来读取txt文件
  17. 数据库错误代码:1055(Error Number: 1055) 解决方法
  18. python足球联赛赛程_足球联赛赛程表生成
  19. 2019人工智能大数据精英大会圆满落幕(内附大会PPT干货资源)
  20. ACM2021辽宁省赛:CDEFGILM

热门文章

  1. flex FileReference帮助
  2. 【信号处理】数字双相码仿真含Matlab源码
  3. 毕业设计(微信小程序)和毕业论文怎么写,答辩流程是怎样的?
  4. wincc项目归档数据导出
  5. 2023美赛各题选择及思路分析
  6. 使用matlab绘制地图
  7. Web3.0介绍与产业赛道(去中心化,金融与数字资产,应用与存储,区块链技术)
  8. tomcat问题:导入源码报程序包aQute.bnd.annotation.spi不存在
  9. 什么样的电脑配置跑Vivado FPGA综合最快?
  10. 第八届蓝桥杯大赛个人赛决赛(CB软件类)真题