为了课程设计准备数据,爬取驾考的题库,包括题目、选项、答案、解析、图片

模型:Question 

@Entity
public class Question {private int id;private Integer num;private String type;private String chapter;private String question;private String options;private String answer;private String analysis;private String picpath;private String picurl;
...
}

目标网址:https://www.ybjk.com/tiku/02dec.htm

public void getInfo(QuestionService questionService) throws IOException {//1: 科目一 4: 科目四String url = "";String subject = "";url = "https://www.ybjk.com/tiku/02dec.htm";subject = "1";
//        url = "https://www.ybjk.com/tiku/d704f.htm";
//        subject = "4";int i = 1;while (!url.equals("")) {Document document = Jsoup.connect(url).timeout(4000).userAgent("Mozilla").get();String num = "";String type = "";String chapter = "";String question = "";String option = "";String answer = "";String analysis = "";String picpath = "";String picurl = "";//序号num = new Integer(i++).toString();//章节chapter = document.select(".h_Nav a").get(3).text();//题目question = document.selectFirst("#WinContent div strong a").text();//正确答案answer = document.selectFirst("#WinContent div ul li i u").text();//分析本题类型if (answer.equals("对") || answer.equals("错")) {//判断题 0代表科目一type = subject +":judge";} else if (answer.length() == 1) {//单选题type = subject + ":one";} else {//多选题type = subject + ":more";}//选择题选项if (type.equals(subject + ":one") || type.equals(subject + ":more")) {//选项optionElements elements = document.select("#WinContent div ul li");int f = 0;for (Element element : elements) {if (f++ < 4) {option += element.text() + ":";}}} else {//判断题option = "对:错";}//题目解析analysis = document.select("#NoteContent p").get(1).text();//图片Element picElement = document.selectFirst("#WinContent div div img.min");if (picElement != null) {picurl = "https:" + picElement.attr("src");writePicTo("H:/dirver_image/", subject + "_" + num + ".gif", picurl);} else {picpath = "0";picurl = "0";}System.out.println("题号: " + num);System.out.println("类型: " + type);System.out.println("章节: " + chapter);System.out.println("题目: " + question);System.out.println("选项: " + option);System.out.println("答案: " + answer);System.out.println("题解: " + analysis);System.out.println("图片: " + picurl);System.out.println("图片本地地址: " + picpath);Question question1 = new Question();question1.setNum(Integer.parseInt(num));question1.setType(type);question1.setChapter(chapter);question1.setQuestion(question);question1.setOptions(option);question1.setAnswer(answer);question1.setAnalysis(analysis);question1.setPicpath(picpath);question1.setPicurl(picurl);//保存questionService.add(question1);//下一题urlurl = "https://www.ybjk.com" + document.select("#WinContent div table tr td a").last().attr("href");System.out.println("url: " + url);}}//爬图片 path:输出路径 name:图片名(含后缀名) url:图片地址private void writePicTo(String path, String name, String url) {URL urlConn = null;URLConnection connection = null;InputStream is = null;OutputStream os = null;try {urlConn = new URL(url);//打开网址连接connection = urlConn.openConnection();//获取连接中的数据流is = connection.getInputStream();//设置输出流os = new FileOutputStream(new File(path + name));System.out.println("保存图片到: " + path + name);//将输入流中的数据输出到输出流中byte[] b = new byte[1024];int count = 0;while((count=is.read(b))!=-1){os.write(b,0,count);}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}

jsoup爬取驾考题库相关推荐

  1. python爬取学校题库_pyhton 网络爬取软考题库保持txt

    #-*-coding:utf-8-*- #参考文档 #https://www.crummy.com/software/beautifulsoup/bs4/doc/index.zh.html#find- ...

  2. pyhton 网络爬取软考题库保存text

    #-*-coding:utf-8-*-#参考文档#https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#find-al ...

  3. 利用jsoup爬取百度网盘资源分享连接(多线程)(2)

    之前的博客 利用jsoup爬取百度网盘资源分享连接(多线程) 已经说明了怎么抓取数据,抓取完数据就是共享这些资源了,说白了就是搭建一个百度网盘资源搜索网站,我是利用WAMP搭建的. 主页面index. ...

  4. 使用jsoup爬取玩Android网站导航数据

    知识点 - 使用jsoup爬取玩Android网站中的导航数据 - 输出md格式的表格 /*** Created by monty on 2018/3/9.*/ public class WanAnd ...

  5. java爬虫案例——SpringBoot使用HttpClient、Jsoup爬取京东手机数据

    文章目录 前言 一.准备工作 二.项目文件 1.项目依赖 2.项目配置文件 3.pojo 4.dao接口 5.service接口及其实现类 6.HttpClient封装工具类 7.爬取任务实现 8.启 ...

  6. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

  7. python每隔一段时间保存网页内容_利用Python轻松爬取网页题库答案!教孩子不怕尴尬了!...

    大家有没有遇到这种令人尴尬的情况:"好不容易在网上找到需要的资源数据,可是不容易下载下来!"如果是通过一页一页的粘贴复制来下载,真的让人难以忍受,特别是像我这种急性子,真得会让人窒 ...

  8. java爬虫问题二: 使用jsoup爬取数据class选择器中空格多选择怎么解决

    问题描述: 在使用jsoup爬取其他网站数据的时候,发现class是带空格的多选择,如果直接使用doc.getElementsByClass("class的值"),这种方法获取不到 ...

  9. java jsoup爬取动态网页_java通过Jsoup爬取网页(入门教程)

    一,导入依赖 org.jsoup jsoup 1.10.3 org.apache.httpcomponents httpclient 二,编写demo类 注意不要导错包了,是org.jsoup.nod ...

最新文章

  1. Chunky Monkey-freecodecamp算法题目
  2. 我的世界1.7.10java下载安装_我的世界1.7.10正式版
  3. 短信认证方案,用手机短信进行上网认证如何实现?
  4. WPF 用 DataTemplate 合并DataGrid列表列头类似报表设计及行头列头样式 - 学习
  5. Spring Cloud 2020年路线图发布,涵盖Spring Boot 2.3、2.4,Spring Cloud Ilford等重磅内容!
  6. aix 超过一天的文件_Aix 6.1下 /dev/null 21 文件过大导致根目录爆满
  7. ensp的下载与安装教程
  8. 第一序列任小粟的能力_《第一序列》陈无敌刚烈正义,自封大圣,可任小粟做不得慈悲唐僧...
  9. [原创]自定义公历农历日期选择器
  10. AT2401C完美替代RFX2401C性价比更高
  11. Docker学习笔记之常用命令
  12. windows下gfortran编译error:Note: The following floating-point exceptions are signalling: IEEE_UNDERFLOW
  13. python实现微信自动发拜年信息和回复消息
  14. 5G网络优化工程师的前景好吗?需求大不大?中级最高高达10000!
  15. linux 用户和组详解
  16. MPC模型预测控制及在Matlab中实现函数定义
  17. 2022-2027年中国烟用香精香料行业发展前景及投资战略咨询报告
  18. i5 11320h怎么样 相当于什么水平
  19. php吉祥物玩偶怎么获得,吉祥物毛绒玩偶设计原型构想
  20. CyberLink PhotoDirector Ultra(相片大师)官方中文版V12.4.2819.0 | 相片大师下载最新版 | photodirector好用吗?

热门文章

  1. ubuntu17.10键盘背光灯以及鼠标无效的问题
  2. Python爬取京东回力鞋购买情况看看码数比例
  3. python中多分支结构可以不用else吗_Python3基础 多分支结构 if-elif-else
  4. 网页转换成markdown
  5. html5病毒营销,病毒式营销的特点及成功案例
  6. wamp php不可用_使用wamp扩展php时出现服务未启动的解决方法
  7. gif一键抠图 在线_强力推荐!免费在线的一键抠图神器:AIpix
  8. 产业分析:乡村旅游振兴白皮书
  9. 临汾第一站软件工作室网站建成运行……
  10. java中子类会继承父类的构造方法吗