`
vtrtbb
  • 浏览: 360656 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

抓取一个医学方面的分类导航

    博客分类:
  • java
阅读更多
public class GetNav {

	/**
	 * @param args
	 * @throws ParserException
	 */
	public static void main(String[] args) throws ParserException {
		getBaiduKeyword();

	}

	public static String Html2Text(String inputString) {
		String htmlStr = inputString; // 含html标签的字符串
		String textStr = "";
		java.util.regex.Pattern p_script;
		java.util.regex.Matcher m_script;
		java.util.regex.Pattern p_style;
		java.util.regex.Matcher m_style;
		java.util.regex.Pattern p_html;
		java.util.regex.Matcher m_html;

		java.util.regex.Pattern p_html1;
		java.util.regex.Matcher m_html1;

		try {
			String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; // 定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script>
			String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; // 定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style>
			String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
			String regEx_html1 = "<[^>]+";
			p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
			m_script = p_script.matcher(htmlStr);
			htmlStr = m_script.replaceAll(""); // 过滤script标签

			p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
			m_style = p_style.matcher(htmlStr);
			htmlStr = m_style.replaceAll(""); // 过滤style标签

			p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
			m_html = p_html.matcher(htmlStr);
			htmlStr = m_html.replaceAll(""); // 过滤html标签

			p_html1 = Pattern.compile(regEx_html1, Pattern.CASE_INSENSITIVE);
			m_html1 = p_html1.matcher(htmlStr);
			htmlStr = m_html1.replaceAll(""); // 过滤html标签

			textStr = htmlStr;

		} catch (Exception e) {
			System.err.println("Html2Text: " + e.getMessage());
		}

		return textStr;// 返回文本字符串
	}

	public static void getBaiduKeyword() throws ParserException {
		String url = "http://www.meddir.cn/cate/1120.htm";
		Parser parser = new Parser(url);
		parser.setEncoding("gb2312");
		NodeList nodeList = null;
		NodeFilter DivFilter = new NodeClassFilter(Div.class);
		OrFilter lastFilter = new OrFilter();
		lastFilter.setPredicates(new NodeFilter[] { DivFilter });
		nodeList = parser.parse(lastFilter);
		Node[] nodes = nodeList.toNodeArray();
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < nodes.length; i++) {
			Node anode = (Node) nodes[i];
			if (anode instanceof Div) {
				Div div = (Div) anode;
				if (div.getAttribute("style") != null) {
					if (div.getAttribute("style").equals("cursor:hand;cursor:pointer")) {
						String prefix = "(";
						int start = div.getAttribute("onClick").indexOf(prefix);
						String nav = div.getAttribute("onClick").substring(start);
						int ss = nav.indexOf(",");
						String urls = nav.substring(ss + 1).replaceAll("\\)","").replaceAll("\\'", "");
						String urlName = div.getStringText().replaceAll("\r\n","");
						sb.append(urls + "," + Html2Text(urlName).replaceAll("\\*","")+"\r\n");
						System.out.println("---" + urls + "---" + Html2Text(urlName).replaceAll("\\*",""));
					}
				}
			}
		}
		if (sb != null) {
			FileUtil.newFile("d:/html/医学论文.txt",sb.toString());
		}

	}

}

 

分享到:
评论

相关推荐

    百度知道医学知识的抓取并存储_java_

    在IT行业中,Java是一种广泛应用的编程...通过以上技术的综合运用,一个完整的Java医学知识抓取并存储系统便能搭建起来。这样的系统对于医学研究、健康咨询等领域具有很高的价值,能够为用户提供及时、准确的医疗信息。

    分类导航代码

    综上所述,这个“分类导航代码”项目涉及到网站结构设计、动态生成静态技术、SEO优化、用户交互以及后台管理等多个方面,是一个全面的Web开发实践,旨在创建一个既用户友好又搜索引擎友好的分类导航网站。

    屏幕颜色抓取工具,一个绿色小巧的颜色抓取工具

    屏幕颜色抓取工具是计算机用户在进行...而这款绿色小巧的版本则在提供必要功能的同时,兼顾了轻便和无痕使用,无疑是一个理想的选择。用户可以根据自己的需求和工作环境,选择合适的颜色抓取器,提升自己的工作效率。

    casperjs抓取简单实例

    "casperjs抓取简单实例" 指的是使用CasperJS库进行网页抓取的一个基础应用示例。CasperJS是一个基于PhantomJS或SlimerJS的高级脚本接口,用于导航、测试和截图网页。在这个实例中,它被用来抓取特定输入内容(可能是...

    静态页面抓取工具

    它们的目标是构建一个本地副本,尽可能忠实地再现原始网站的结构和内容。这对于创建网站备份、分析竞争对手的网页策略或研究网络数据有着极大的帮助。 httrack是一款流行的开源网页抓取工具,其最新版本为3.48.21。...

    导航加视觉抓取功能包 dobot.tar.gz

    M1-B1导航加视觉抓取功能包 ,

    02分类数据抓取.zip

    "02分类数据抓取.zip"这个压缩包文件包含了关于如何高效地抓取和处理分类数据的教学资源,具体包括三个视频文件:05_创建分类爬虫抓取数据.flv、06_保存分类数据.flv以及04_确定分类信息的URL.flv。这些文件将指导...

    SDK 屏幕动态抓取

    本项目是用C++实现的SDK屏幕动态抓取程序,主要面向学习者,提供了一个基础的实现框架。 在C++中实现屏幕抓取通常涉及Windows API(应用程序接口),特别是GDI(图形设备接口)或DirectX。以下是一些关键的知识点:...

    局域网数据包抓取程序

    2. **数据包结构**:每一个数据包都包含源地址、目的地址、协议类型、数据载荷等内容。通过分析这些字段,可以了解到数据的来源、去向以及所承载的信息。 3. **嗅探技术**:嗅探(Sniffing)是数据包抓取的关键技术...

    自己写的一个网站图片抓取程序

    标题中的“自己写的一个网站图片抓取程序”指的是一个用Go语言编写的程序,它的主要功能是自动从网站上下载并收集图片。这种程序通常用于数据挖掘、网站备份或者图像分析等场景。开发者可能在编写这个程序时考虑了...

    网站链接抓取器(自动抓取).zip

    网站链接抓取器是一款实用工具,它主要用于自动化地抓取指定域名下的所有链接,并将这些链接整理成一个名为“sitemap.txt”的网站地图文件。这个过程对于网站优化,特别是搜索引擎优化(SEO)工作至关重要。 首先,...

    抓取网站神器工具

    6. **预览和管理**:下载完成后,Teleport Pro 提供了一个内置的浏览器,可以在本地查看抓取的网页,同时提供文件管理功能,方便用户组织和查找所下载的资源。 7. **隐私保护**:在进行网站抓取时,Teleport Pro ...

    谷歌地图抓取器

    总的来说,谷歌地图抓取器是GIS领域中一个非常实用的工具,它允许用户灵活地获取和处理谷歌地图的数据,为各种地理分析和应用提供了便利。然而,随着技术的发展,现在也有许多在线地图服务提供API,允许开发者合法地...

    抓取265.com分类及对应的网站(C# code)

    本案例主要探讨了如何使用C#编程语言抓取265.com的分类信息以及每个分类下的网站列表,这对于构建Web分类体系或者进行数据分析具有很大的价值。下面我们将详细讨论这个过程。 首先,265.com是一个知名的网址导航...

    搜搜关键词多层抓取

    总的来说,“搜搜关键词多层抓取”是一个涉及数据挖掘、搜索引擎原理、网页分析、策略制定等多个方面的复杂过程,对于提升网站在搜索引擎中的表现具有重要意义。通过系统性的抓取和分析,可以不断优化网站的SEO策略...

    百度地图抓取 抓取地址信息

    在这个项目中,很可能开发者创建了一个用户界面,用户可以在其中输入关键词,然后应用通过调用百度地图API来搜索和显示相关地址。 在实际操作中,抓取大量数据时必须遵守百度地图的使用条款和条件,避免过度请求或...

    Java实现网页抓取

    通过以上知识点的学习和实践,我们可以构建一个基础的网页抓取系统。在"ZhuaData"这个项目中,你可以看到具体的Java代码实现,包括如何发起HTTP请求、解析HTML、存储数据等步骤。这将是一个很好的学习和参考资源,...

    网页抓取小工具

    这涉及到DOM(文档对象模型)的理解,DOM将HTML或XML文档转换为一个树形结构,便于程序操作。 3. **CSS选择器**:CSS选择器用于定位HTML元素,是网页抓取中的重要工具。通过选择器,我们可以精确地选取需要抓取的...

    智能抓取沙箱的抓取数据集

    智能抓取沙箱的抓取数据集 数据说明: 在Shadow Robot,我们是...由于当前模拟的局限性,它是一个受限的数据集--只能抓取一个球。数据集以客观的抓取质量进行注释,并包含从关节收集的不同数据(位置、速度、力度)。

    自动秒收录网址导航分类目录源码 v3.11.1.zip

    5. robots.txt:这是一个告诉搜索引擎哪些页面可以抓取、哪些不能抓取的文件,对于网站SEO(搜索引擎优化)非常重要。 6. zdmsl_image:可能存放的是网站的图片资源,如logo、按钮等。 7. zdmsl_include:可能包含了...

Global site tag (gtag.js) - Google Analytics