如何防止网站关键数据被人恶意采集

如何防止网站关键数据被人恶意采集,第1张

1> 关键信息通过ajax请求来获取,最好是需要带有临时token作为参数的请求。网站在发布的时候需要做javascript代码压缩和混淆,这样程序人员就很难通过阅读代码或者捕获请求来建立模拟采集。这里说的关键信息,是指那种对业界同行来说比较重要的信息,比如说价格等。除了这些关键信息以为的信息就最好不要用ajax请求来显示了,那样不利于SEO优化,搜索引擎的蜘蛛也不能模拟如此复杂ajax请求。另外如果有分页,一定要用ajax请求来分页。具体例子可以看看 花瓣网 的首页。至于通过表单请求来获取数据,有些采集器已经能模拟带session或者cookie信息的表单请求了,至少Jsoup是可以做到的。

2> 关键信息通过来显示。这种是技术含量比较低的防御了,唯一的好处是有利于SEO优化,因为通过alt来携带更加丰富的信息。京东的商品价格就是用来显示的,采集器采集到的价格信息需要做OCR文字识别,如果在的格式做些手脚或者加入混淆信息,那别人采集过去的信息准确度就会大大降低。另外通过来显示的另外一个好处就是可以把服务器独立出来,然后通过防火墙设置来只允许来自已知域名的请求。

3> 网页代码结构化混淆。简单的说就是关键信息的显示不是规律性的。这种做法对网站开发人员要求比较高。毕竟html是一种结构化的语言,想要通过不规律的html标签勾勒出美观的结构化界面是比较难的,但不是不可能。比如说同一张页面的上商品价格列表,你可以随机用div,li,span等这些文字标签来封装,然后通过定制css来达到规范布局。不同的页面(分页)上价格列表,最顶层的div的id或者class不一样,而且跟其他页面的的id无规律可循。这样做可以让采集程序很难发掘到采集的规律,那么采集的难度就大大加大了,即使能采集,效率也会相当低下。这种做法基本上不影响SEO优化。

不过话说回来,不管你采取哪种防御措施,想防住真正的高手是不可能的,只要能防住98%的人就可以了。剩下的那2%,你如果发现你的数据被采集了,就采取法律措施吧。前段时间大众点评起诉“食神摇一摇”抄袭数据,就是一个很好的例子。

您好,这样的:

解析HTML文档的Java程序

下面是一个解析HTML字符串,网络上下载的HTML文件,以及本地文件系统中的HTML文件的完整的Java程序。你可以使用Eclipse IDE或者别的IDE甚至命令来运行这个程序。在Eclipse里面则很简单,拷贝这份代码,新建一个Java工程,在src包上右键并粘贴进去就可以了。Eclipse会去创建正确的包及同名的Java源文件的,因此工作量最小。如果你已经有一个Java示例工程了,那么仅需一步就可以了。下面的这个Java程序展示了解析及遍历HTML文件的三个不同例子。第一个例子中,我们直接解析了一个内容为HTML的字符串,第二个例子中我们解析了一个从URL中下载的HTML文件,第三个中我们从本地文件系统中加载了一个HTML文档并进行解析。第一和第三个例子中都用到了parse方法来获取一个Document对象,你可以查询它来提取出任何的标签值或者属性值。第二个例子中,我们用到了Jsoupconnect方法,它会去创建URL的连接,下载HTML并进行解析。这个方法也会返回Document,它可以用于后续的查询及获取标签或者属性的值。

import javaioIOException;

import orgjsoupJsoup;

import orgjsoupnodesDocument;

import orgjsoupnodesElement;

/

[] Java Program to parse/read HTML documents from File using Jsoup library

[] Jsoup is an open source library which allows Java developer to parse HTML

[] files and extract elements, manipulate data, change style using DOM, CSS and

[] JQuery like method

[]

[] @author Javin Paul

[]/

public class HTMLParser{

public static void main(String args[]) {

// Parse HTML String using JSoup library

String HTMLSTring = "<!DOCTYPE html>"

+ "<html>"

+ "<head>"

+ "<title>JSoup Example</title>"

+ "</head>"

+ "<body>"

+ "|[b]HelloWorld[/b]"

+ ""

+ "</body>"

+ "</html>";

Document html = Jsoupparse(HTMLSTring);

String title = htmltitle();

String h1 = htmlbody()getElementsByTag("h1")text();

Systemoutprintln("Input HTML String to JSoup :" + HTMLSTring);

Systemoutprintln("After parsing, Title : " + title);

Systemoutprintln("Afte parsing, Heading : " + h1);

// JSoup Example 2 - Reading HTML page from URL

Document doc;

try {

doc = Jsoupconnect(">

问题:大侠们我想问两个Android开发使用jsoup解析html的相关问题

回答:第一个问题帮你解决了;第二个问题很简单(但你用错了),但没有你的这个htm文件,没有修改测试

superonCreate(savedInstanceState);

TextView txt = new TextView(this);

InputStream input;

try {

input = getResources()getAssets()open("temp04_assets/txt01htm");

int buffersize = inputavailable();// 取得输入流的字节长度

byte buffer[] = new byte[buffersize];

inputread(buffer);// 将数据读入数组

inputclose();// 读取完毕后要关闭流。

String txthtml = EncodingUtilsgetString(buffer, "UTF-8");// 设置取得的数据编码,防止乱码

Document doc = Jsoupparse(txthtml);

Element infoTable = docgetElementsByAttributeValue("class",

"table002")first();

Elements tableLineInfos = infoTableselect("tr");

for (Element lineInfo : tableLineInfos) {

String lineInfoContent = lineInfoselect("td")last()text()

trim();

txtsetText(lineInfoContent);

setContentView(txt);

}

} catch (IOException err) {

errgetStackTrace();

}

总结一下Jsoup提供的方法:

获取元素的有:

getElementById(String id)

getElementsByTag(String tag)

getElementsByClass(String className)

getElementsByAttribute(String key)

siblingElements(), firstElementSibling(), lastElementSibling(); nextElementSibling(), previousElementSibling()

parent(), children(), child(int index)

获取元素数据:

attr(String key) 获取属性

attr(String key, String value) 设置属性

attributes() 获取所有属性

id(), className() and classNames()

text() 获取文字内容

text(String value) 设置文字内容

html() 获取html内容

html(String value) 设置html内容

outerHtml()

data() 获取类似script,style的数据内容

tag() and tagName()

*** 作HTML内容:

append(String html), prepend(String html)

appendText(String text), prependText(String text)

appendElement(String tagName), prependElement(String tagName)

html(String value)

我们这款沙发是采用最高端的科技制造而成,d簧的d性抗压力都是最高标准。

而且海绵质量也特别过关,定制的时候都是高端产品,坐到沙发上的时候,d性很足,也不会她坐下去的时候舒适度真好,经过无数次实践验证过的,可以放心使用。

这几天正在研究。废话不多说,直接上代码,自己研究的,通过迭代抓取。pageList就是抓取的分页页面的全部链接地址 。

其中Document doc = NetUtilsgetDocument(url);是jsoup抓取页面的基本 *** 作。

public class HtmlAnalsysTest3 {

static String url = ">

以上就是关于如何防止网站关键数据被人恶意采集全部的内容,包括:如何防止网站关键数据被人恶意采集、java中.html文件和.java文件的用途及运行环境、大侠们我想问两个Android开发使用jsoup解析html的相关问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9558469.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存