meta标签有毒

2024-02-03 05:08
文章标签 meta 标签 有毒

本文主要是介绍meta标签有毒,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天要完成的一项工作是:从 html文件中提取,title标签
原本以为是很简单的工作呢。可是一个素食网站里面,像这些http://www.chinavegan.com/2015/05/2015051718461747.html
网页,当我用 httpclient下载页面,然后用jsoup进行解析的时候,发现,document对象里面,title标签,h1标签统统都没有了。可是,我再去下载好的网页时看,咦,title、h1标签都是存在的啊。
怎么回事?

后俩比较一下 如下的两个网页:
http://www.chinavegan.com/2015/05/2015051718461747.htm
(抽不出 title、h1标签内容,因为jsoup解析的时候,documnet里面根本没有 这两类标签)
http://www.chinavegan.com/
(可以抽出 title、h1标签内容)

原因是:这里写图片描述

这里写图片描述
看到没,下面那张图片里面少了:
这里写图片描述

~~~~~~~~~~~~~~~~~~~~
my god,我笨,我调了那么长时间,终于找到了错误。

然后:
我首先采取,手工 输入这句话,果然 普通页面也可以提取title了。
接着,我天真的以为,
方法一:可以通过 文件 读写的方式,来给每个 普通网页在title标签之前,加上

这句话。结果各种错误,说明这样使不可行的

方法二:
我采用 jsoup的各种方式,企图向head标签后面加入

事实证明是无用的。title标签依旧不在jsoup中。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上两种方法,都没有抓住源头,源头的错误,应该是出现在下载网页的时候。方正,最后我参考了这篇文章,采用java的url,全部读取网页内容,然后使用正则表达式,终于搞定了,成功提取title.
参考的帖子:http://blog.csdn.net/yuyuyuyuy/article/details/6547430

package catchhtml;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class GetHtmlTitle {public GetHtmlTitle(String htmlUrl){System.out.println("/n------------开始读取网页(" + htmlUrl + ")-----------");String htmlSource = "";htmlSource = getHtmlSource(htmlUrl);//获取htmlUrl网址网页的源码System.out.println("------------读取网页(" + htmlUrl + ")结束-----------/n");System.out.println("------------分析(" + htmlUrl + ")结果如下-----------/n");String title = getTitle(htmlSource);System.out.println("网站标题: " + title);}/*** 根据网址返回网页的源码* @param htmlUrl* @return*/public String getHtmlSource(String htmlUrl){URL url;    StringBuffer sb = new StringBuffer();try{url = new URL(htmlUrl);BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));//读取网页全部内容String temp;while ((temp = in.readLine()) != null){           sb.append(temp);}in.close();}catch (MalformedURLException e) {System.out.println("你输入的URL格式有问题!请仔细输入");}catch (IOException e) {e.printStackTrace();}   return sb.toString();}/*** 从html源码(字符串)中去掉标题* @param htmlSource* @return*/public String getTitle(String htmlSource){List<String> list = new ArrayList<String>();String title = "";//Pattern pa = Pattern.compile("<title>.*?</title>", Pattern.CANON_EQ);也可以Pattern pa = Pattern.compile("<title>.*?</title>");//源码中标题正则表达式Matcher ma = pa.matcher(htmlSource);while (ma.find())//寻找符合el的字串{list.add(ma.group());//将符合el的字串加入到list中}for (int i = 0; i < list.size(); i++){title = title + list.get(i);}return outTag(title);}/*** 去掉html源码中的标签* @param s* @return*/public String outTag(String s){return s.replaceAll("<.*?>", "");}public static void main(String[] args) {String htmlUrl = "http://www.157buy.com";new GetHtmlTitle(htmlUrl);}
}

总结:jsoup+httpclient,虽然方便,
但是关键时刻还是得靠 正则表达式+java.url

这篇关于meta标签有毒的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673065

相关文章

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML