Java爬虫之爬取多篇含有关键词的文章标题和内容

【Java】爬虫,能不能再详细讲讲?万字长文送给你! 前言 本文仅用于学习知识探讨,绝无其它恶意。 前两篇基础文章链接: 《【Java】爬虫,看完还爬不下来打我电话 》 《【Java】爬虫,数据持久化到MongoDB》 本文打算再详细的讲讲一些流程细节,另外,最后有写到如何分析爬取下来的内容。 在开始正文之前,还要说清一件事:我是小白,能不能学会爬虫? 答:学不会,别学了,放弃吧。赶紧拿起手机,打游戏吧。这么热的天,哪凉快哪去,千万别遭这个罪。 正文... 阅读详情

实现的功能

该代码针对维科网写的爬虫,具体如果想写其它的可以照着这篇模仿来写!
在这里插入图片描述
输入想要搜索的关键字和输入关键字后的前几页页数(即输入关键字后跳转的网页的页数,如下图)
在这里插入图片描述
将包含关键字的文章标题和内容提取出来保存在一个txt文件里面(如下图,输入关键词为智能,前2页)
在这里插入图片描述
在这里插入图片描述

需要用到的jar包

获取文章信息需要的包:Jsoup;
可以到https://jsoup.org/download下载,如果就想着爬虫,选择第一个就够了。
在这里插入图片描述

需要对html一些标签有一定的了解

可以到w3cschool了解html相关知识;
打开维科闻网站输入关键词后,按F12开发者工具,或者右键点击查看源,就可以看到网页的源代码。

代码设计思想

有心者应该知道我用python写过这个爬虫(python爬虫之爬取多篇含有关键词的文章标题和内容),两者有着异曲同工之妙。
1.每个网页通过Jsoup.connect(url).get请求获得网页源代码,再通过getElementsByClass()或者select()等来对源代码进行提取信息;
2.先观察每次输入关键字之后网址的变化,如我输入高新,可以发现关键字在keywords=里面,那这样可以用input后,将关键字字符串和前面的网址连接起来。
在这里插入图片描述
在这里插入图片描述
3.观察每一页的网址变化,如第三页,可以发现页数是存在pagenum=里面的(第一页可能忽略了,你可以尝试的输入http://www.ofweek.com/newquery.action?keywords=高新&pagenum=1,发现会跳转第一页),这样就可以将页数和前面2拼接后的网址再拼接起来。
在这里插入图片描述
4.接下来就是看搜索关键词后网页的源代码(F12),可以发现每个文章都是在类名为zx-tl的div块标签里面,就可以通过select(“div.zx-tl”)提取出里面的文章的标题和链接,也可以用getElementsByClass(“zx-tl”);
在这里插入图片描述
5.再将每页文章的链接访问一遍,提取出文章的内容,而再次打开每篇文章的链接,发现文章的内容都是在类名为artical-content的div块里面,通过select(“div.artical-content”)把文章的内容提取出来,也可以用getElementsByClass(“artical-content”)提取。
在这里插入图片描述
6.把文章的内容和标题写入txt文件。

源代码

package test;
import java.io.*;
import java.util.Scanner;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.util.Vector;
public class Test{
	public static Vector<String> titles=new Vector<String>();//存放文章标题
	public static Vector<String> t_contents=new Vector<String>();//存放文章内容
	public static void getTitleAndUrl(String url) {
		try {
			Vector<String> t_urls=new Vector<String>();
			Document doc = Jsoup.connect(url).get();
			Elements links=doc.getElementsByClass("zx-tl");//由于每篇文章标题都是在类名为zx-tl的div块里面,Java可以直接用getElementsByClass,当然这里也可以用select来写,select("div.zx-tl")
			Elements urls=links.select("a");//再缩短,标题和链接都在a标签里面
	        for (Element link : urls){
	            t_urls.add(link.attr("href"));//将每篇文章链接加入t_urls
	            titles.add(link.text());//将每篇文章标题加入titles
	        }
	        for(String t_url:t_urls) {
	        	Document doc2=Jsoup.connect(t_url).get();
	        	Elements contents=doc2.getElementsByClass("artical-content");
	        	t_contents.add(contents.text());
	        }
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static void main(String arg[]) {
		try {
			Scanner input=new Scanner(System.in);
			System.out.println("输入在维科网搜索的关键词:");
			String keyword=input.next();
			System.out.println("输入想要查找的前几页(如果输入2,即找前2页的):");
			String pagenumber=input.next();
			String txt_name="关键词:"+keyword+"前"+pagenumber+"页具体内容.txt";
			File file=new File(txt_name);
			int pagenum=Integer.parseInt(pagenumber);
			for(int i=1;i<=pagenum;i++) {
				String page=Integer.toString(i);
				String url="http://www.ofweek.com/newquery.action?keywords="+keyword+"&type=1&pagenum="+page;
				getTitleAndUrl(url);
			}
			if(!file.exists()){
				file.createNewFile();
			}
			FileWriter fileWriter = new FileWriter(file.getAbsoluteFile());
			BufferedWriter bw = new BufferedWriter(fileWriter);
			for(int i=0;i<titles.size();i++) {
				bw.write(titles.get(i));
				bw.write("\n");
				bw.write(t_contents.get(i));
				bw.write("\n\n");
			}
			bw.close();
			System.out.println("txt文件已经成功记录!");
			}
		catch(IOException e) {
			e.printStackTrace();
		}
	}	
}
【教你写爬虫】用Java爬虫爬取百度搜索结果!可爬10w+条! 在爬虫中,无非就是模拟人的操作过程,去做相关操作,获取数据。通过上文介绍的方式,我们是使用一种更具有通用型的方式去爬取数据。因为Puppeteer只是代理人手工点击的方式,而拿到数据。上述完整代码,可以留言私信我获取。 阅读详情

相关推荐

使用java 来爬取网页内容

使用java 来爬取网页内容前言明确爬取对象实现需求小说名称 前言 在日常中,我们经常需要浏览网页,阅读一些内容。 但网页中并不是所有内容都是我们所需要的。 毕竟,谁都不想看的好好时突然出现一个“澳门棋牌”。 那么这时我们就可以爬取它的内容。 明确爬取对象 这里就以大家熟知的 笔*阁为例。 打开笔*阁的首页。 不对,打开一本小说。 这里以《进化的四十六亿重奏》为例(我是挺推荐这本书的,还有,如果可以的话尽量支持正版。) 打开主页,查看源代码,我们可以从其中换取我们需要的一起。 那我们需要什么呢? 那我们

mo7984130的博客 9550

教你使用java的爬虫爬取你想要的资源

目录说明方法摘要常用的Element节点方法实战Maven 说明 简介: 你还在为想要的资源而获取不到而烦劳吗?你还在为你不会python而爬取不到资源而烦劳吗?没关系,看完我这一篇文章你就会学会用java爬取资源,从此不会因此而烦劳,下面我会以爬取京东物品来进行实战演示!!! 方法摘要 adoptNode adoptNode(Node source) //试图把另一文档中的节点采用到此文档。 createAttribute createAttribute(String name) //创建指定名称的At

weixin_46909573的博客 3675

爬取百度学术:标题,关键词,年份,摘要,原链接,作者。

爬取百度学术:标题,关键词,年份,摘要,原链接,作者还可以写在记事本上。(如果要写在记事本上要把f的注释去掉)大家和可以导入数据库 在这里插入代码片 import requests import openpyxl import re from bs4 import BeautifulSoup from urllib.request import quote `#"百度学术是用utf-8编码的,因而这里汉字以这个形式编码 search = input('请输入关键词:') kwen = search.e

肥学的博客 1461

Java 知网博硕论文信息爬虫

知网博硕论文信息爬虫 声明 代码 首先声明这段代码,是我刚毕业进公司写的,整个爬虫系统我还没写完,就被调去学python支援公司的某个项目去了,所以代码距离我写文章时候,其实已经过去了大半年有余了,代码后面因为项目的终止,再也没更新过,其中需要说明的是Tools类不能使用,因为这是以前公司大佬写的底层解析HTML的类,建议你使用Jsoup或者正则表达式去解析HTML文本。 这只是个爬取信息的爬虫,...

笑笑布丁的博客 2049

《爬虫和逆向教程》 - 专栏介绍和目录

本专栏为爬虫初学者和进阶开发者量身定制的爬虫和逆向学习园地。为你提供全面而深入的爬虫和逆向技术指导,从入门到精通,从基础理论到高级实战,助你在数据的海洋中畅游,挖掘出有价值的信息。通过本专栏的学习,你将具备独立开发和优化爬虫程序的能力,及逆向分析能力和项目开发能力,成为爬虫领域的佼佼者。

数据知道的博客 2万+

UE5游戏逆向实战:用FModel提取.pak文件中的3D模型(附Dumper-7避坑指南)

本文详细介绍了如何使用FModel工具从UE5游戏的.pak文件中提取3D模型,并提供了Dumper-7的避坑指南。内容涵盖FModel工具链配置、UE5特有的unversioned properties问题解决方案、Dumper-7实战流程以及模型后处理技巧,帮助开发者高效获取游戏资产。

weixin_30872499的博客 422

python爬虫之爬取多篇含有关键词的文章标题和内容

python爬虫之爬取多篇含有关键词的文章标题和内容实现的功能需要用到的库需要对html一些标签有一定的了解代码设计思想源代码 实现的功能 输入想要搜索的关键字和输入关键字后的前几页页数(即输入关键字后跳转的网页的页数,如下图) 将包含关键字的文章标题和内容提取出来保存在一个txt文件里面(如下图,输入关键词为高新,前一页) 需要用到的库 获取文章信息需要的库:beautifulsoup4,request; 需要对html一些标签有一定的了解 可以到w3cschool了解 打开维科闻网站输入关键词后,

hell_orld的博客 1万+

告别蓝牙音质妥协:用ESP32和PCM5102搭建WiFi无损音频播放器(附完整代码)

本文详细介绍了如何利用ESP32微控制器和PCM5102 DAC芯片构建一套完整的WiFi无损音频流媒体系统,彻底摆脱蓝牙协议的音质束缚。从硬件原理到软件实现,包括核心器件选型、电路设计、I2S音频驱动实现以及系统优化方案,帮助音频发烧友实现高保真无线音频传输。

weixin_30733003的博客 542

如何爬取优快云全站综合热榜标题,顺便统计关键词词频 | 爬虫案例

目录 前言 环境 爬虫代码 关键词提取代码 主程序代码 总结 前言 最近在出差,发现住的宾馆居然有小强。所以出差无聊之际,写了点爬虫的代码玩玩,问就是应景。本篇文章主要是爬取优快云全站综合热榜的100个标题,然后分词提取关键词,统计一下词频。 我想了下,对于其他博主还是有用的,可以看看什么标题可以上热榜,就分享一下吧。顺便把我解决各类问题的方法,说一说。 环境 使用的IDE为:spyder(有看着界面不习惯的,忍一下,不关键) 页面爬取使用chromedriver,至于

阿良的博客 1万+

手把手教你用SpringBoot+Vue3+Docker从零搭建一个在线OJ系统(附完整源码)

本文详细介绍了如何使用SpringBoot、Vue3和Docker从零搭建一个在线OJ系统,涵盖前后端开发、判题机实现及Docker容器化部署。通过完整的源码和实战步骤,帮助开发者掌握OJ系统的核心架构与关键技术,适用于算法训练、编程竞赛等场景。

weixin_42648844的博客 297

量化交易新手入门:从零开始搭建你的第一个Python交易策略(附完整代码)

本文为量化交易新手提供从零开始搭建Python双均线策略的完整指南,涵盖环境配置、数据获取、策略实现及风险管理等关键步骤。通过详细的代码示例和实践建议,帮助读者快速掌握量化交易的核心技术,并避免常见陷阱。文章特别强调Python在量化交易中的技术革新优势,适合希望进入金融科技领域的初学者。

weixin_26905487的博客 443

【愚公系列】《Python网络爬虫从入门到精通》001-初识网络爬虫

随着互联网的快速发展,数据的获取与处理变得愈发重要。在这个信息爆炸的时代,如何有效地收集和利用网络上的海量数据,成为了各行业面临的一大挑战。网络爬虫,作为一种自动化获取网页信息的技术,正逐渐成为数据分析、市场研究、竞争对手监控等领域不可或缺的工具。本文将带领读者初步了解网络爬虫的基本概念、工作原理以及常见应用场景。我们将探讨爬虫的构建过程,包括如何发送请求、解析网页、存储数据等关键步骤。同时,还会涉及一些爬虫开发中的注意事项,如如何遵循网站的robots.txt协议、避免被封禁等。

愚公智库 12万+

告别迷茫!用ETAS RTA-OS配置你的第一个AUTOSAR OS任务(含VRTA虚拟ECU实战)

本文详细介绍了如何使用ETAS RTA-OS工具链在VRTA虚拟ECU上配置和运行第一个AUTOSAR OS任务。通过从XML配置到任务调度的全流程实战,帮助开发者快速掌握嵌入式操作系统开发的核心步骤,特别适合刚接触AUTOSAR的开发者快速上手。

weixin_42533622的博客 418

java爬虫课程_Java课程设计之——爬虫篇

主要使用的技术HttplcientJsoup多线程dao模式网络爬虫简介网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。——摘自百度百科网络爬虫分类1. 通用网络爬虫通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从...

weixin_35771315的博客 759

手把手教你从入门到精通C# Modbus通信

本文是《Modbus通信从入门到精通》的导读,本专栏将会详细介绍ModusRTU 、ModbusASCII、ModbusTCP这三种协议的C#实现,由一个高级工程师多年实战经验总结而成,绝对干货!

qq_34059233的博客 1万+

实操微信支付,适合第一次接通微信支付的同学

我的实际操作命令如下:就会生成图3中多出来的file文件夹,/Users/camel/cert/xxxxxx_cert/file/wechatpay_5A4xxxxxxxxxx9.pem,wechatpay_xxxxx5A4849E9.pem就是微信支付平台证书,也是程序真正需要的。•注意:我的操作说明,我是把下载好的 CertificateDownloader.jar 文件,放在了解压证书的目录里(图3)。//下面的静态参数要仔细看下面的解释,否则只会调用别人写好的方法,压根学不会0-1接入微信支付。

wjianwei666的专栏 525

不要再吹python爬虫了,我大java明明也可以 | java爬取优快云、知乎文章

爬取文章

剑行歌之 3124

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

seo和python_python网络爬虫与SEO搜索引擎优化介绍

1. 什么是爬虫?首先应该弄明白一件事,就是什么是爬虫,为什么要爬虫,博主百度了一下,是这样解释的:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。其实,说白了就是爬虫可以模拟浏览器的行为做你想做的事,订制化自己搜索和下载的内容,并实现自动化的...

weixin_30160343的博客 333

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

我用Python爬虫爬取并分析了C站前100用户最高访问的2000篇文章_查询csdn阅读量靠前的python文章

就是希望能够帮助提高效率,同时减轻大家的负担。**[外链图片转存中…(img-k30dG5Su-1712580408762)][外链图片转存中…(img-6jr6xwVy-1712580408762)][外链图片转存中…(img-rupBRCJt-1712580408763)]

2401_84187563的博客 1048

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

java爬取_分享一个Java爬虫实战,全网博文爬取

原标题:分享一个Java爬虫实战,全网博文爬取 简介其实Java也可以做爬虫,虽然没有Python辣么强大,但是基本的功能还是没有问题的。本文将介绍一键爬取文章内容并保存入库。一键爬取配置文件引入:com.kotcrab.remark remark 1.2.0 创建爬虫基础配置表,用于匹配相关博客元素:CREATETABLE`app_blog_crawl`(`id`BIGINT( 20) NOTN...

weixin_33250328的博客 410

springboot基于网络爬虫的热门图书推荐系统

本文介绍了一个基于SpringBoot框架与网络爬虫技术的热门图书推荐系统。系统通过爬取豆瓣、当当等多平台数据,实现数据清洗和标准化存储,采用"热门优先+个性化"推荐策略,为用户提供精准图书推荐。系统设计采用四层架构(爬虫、数据处理、推荐算法、Web展示),具有数据覆盖广、更新及时、部署灵活等优势,适用于读者、书店和图书馆等多种场景。未来可提升爬虫效率、优化推荐算法和拓展交互功能。该系统有效解决了信息爆炸时代的选书难题,为图书行业数字化运营提供支持。

wqq_992250277的博客 849

python写脚本的优势_选择Python写网络爬虫的优势和理由

什么是网络爬虫?网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件爬虫有什么用?做为通用搜索引擎网页收集器。(google,baidu)做垂直搜索引擎.科学研究:在线人类行为,在线社群演化,人类动力学研究,计量...

weixin_39627481的博客 168

JAVA API (三):从基础爬虫构建到带条件数据提取 —— 详解 URL、正则与爬取策略

避免使用过度复杂的表达式,对于频繁使用的正则,提前将其编译为Pattern实例,这样可实现复用,减少性能消耗。数据解析与提取:结合字符串处理方法或者正则表达式,从网页源码中提取出目标信息,如链接、文本内容等。基于内容关键词:通过字符串的contains()方法或者正则表达式,过滤出包含指定关键词的数据。定义:爬虫是按照一定规则自动抓取网络信息的程序,在 Java 环境下,可借助。获取响应数据:通过输入流读取网页的内容,并将其转换为字符串进行处理。贪婪匹配:正则表达式在默认情况下,会尽可能匹配最长的字符串。

爱因斯晨的博客 2464

基于python+django的网络爬虫及数据分析可视化系统

基于 Python + Django 的网络爬虫及数据分析可视化系统是一个功能强大的工具。 系统首先具备灵活的网络爬虫功能,可依据用户设定的目标网址、关键词、爬取深度等参数,高效地抓取网页内容,包括文本、图片、链接等信息。在数据提取方面,能够准确地从爬取到的内容中解析出所需数据,如新闻文章中的标题、正文、发布时间,电商产品的价格、评价等。 对于数据分析,系统可对提取的数据进行清洗,去除噪声和重复数据。还能进行统计分析,比如计算数据的频率分布、相关性等。可视化功能则是一大亮点,通过使用如 Matplotlib

专注于大学生项目实战开发,讲解,毕业答疑辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。全网粉丝30万+,优快云特邀博主,Java新星计划多届导师,掘金/知乎/华为云/阿里云/51CTO等平台优质创作者。 1390

beautifulsoup爬取网页中的表格_爬虫入门:如何用python爬取网易新闻?

脚本之家你与百万开发者在一起作者:江一出品 | 脚本之家(ID:jb51net)网络爬虫是帮助我们抓取互联网上有用信息的利器。如果你有一点python基础,实现一个简单的爬虫程序并不难。今天,我们以一个实际的例子——爬取网易新闻,重点介绍使用 BeautifulSoup 对HTML进行解析处理。1.寻找数据特征网易新闻的网址 URL 为:https://www.163.com/我们打开...

weixin_39594191的博客 251
上一篇: python实现AI井字棋极大极小算法和Alpha-beta算法
下一篇: Visual Studio 2017之OpenMP运行环境配置
土、拨鼠
博客等级 码龄8年 60粉丝 21原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值