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

网络爬虫当中暗网爬取初探

    博客分类:
  • java
阅读更多

众所周知,网络爬虫的最基本原理就是模拟HTTP协议向指定网站发送请求,从而从服务器端返回的网页源代码中抽取具有实用价值的信息(也可能下一次任务队列的地址)。这中间涉及到很多算法,根据网站不同域名,网站网页更新速度,网站结构深度,设定爬虫不同的爬取策略。爬虫可以从一些简单的网站上直接获取网页源代码,从而对网页源代码进行分析。但是对于一些需要用户登录的网站,要抓取网站当中被保护的数据具有一定的困难。今天要说就是一个从需要登录的网站上获取收保护数据的方法。

        按照现实生活中的方法,需要获取这些数据,我们首先需要登录这个网站,然后才能访问这个网站当中受保护的数据。好了,话题回来,我们想想,在服务器端网站是如何记录当前用户是否合法(是否已经登录了呢),很简单撒,session,这个我想是大家肯定都知道的方法了。原理很简单,我们访问一个网站,网站在我们首次访问的时候,会返回一个cookies信息。这个信息相当于我们在这个网站的一个登录信息。我们每次访问该网站的时候需要带上这个cookies信息,以便让该网站很容易的识别我们先前已经登录该网站了。

        其实步骤很简单,我们需要访问该网站,获取和这个网站会话的cookies信息。然后带这个这个合法的cookies信息重新登录该网站,登录成功后,会在服务器端产生一个保存用户信息的session。以后我们只需每次访问该网站带上合法的cookies信息,服务器端会根据cookies来判别我们是否是合法用户(当前用户信息是否存在session当中)。如果合法我们就可以顺利获取该受保护的网站内容。

         用java来实现一个简单的代码。从指定网站当中获取需要的cookies信息

URL url_con;
		HttpURLConnection http_con = null;
		try {
			url_con = new URL(url);
			http_con = (HttpURLConnection) url_con.openConnection();
			//构造请求信息,对于安全性稍微高一些的网站,构造此类的请求头信息是必须的,第一次请求不带正确的cookies信息
			http_con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)");
			http_con.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
			http_con.setRequestProperty("Accept-Charset", "GB2312,utf-8;q=0.7,*;q=0.7");
			http_con.setRequestProperty("Accept-Language", "zh-cn,zh;q=0.5");
			http_con.setRequestProperty("Host", "search.cnipr.com");
			http_con.setRequestProperty("Accept-Encoding", "gzip,deflate");
			http_con.setRequestProperty("Keep-Alive", "300");
			http_con.setRequestProperty("Connection", "keep-alive");
			http_con.setRequestProperty("Cookie", "cizi=2");
			http_con.setRequestProperty("Referer","http://www.cnipr.com/top_js.htm");
			//设置请求方式为get请求
			http_con.setDoInput(true);
			http_con.setDoOutput(true);
			http_con.setRequestMethod("GET");
			//建立和服务器之间的连接。
			http_con.connect();
			String cookieVal = http_con.getHeaderField("Set-Cookie");
			//获取服务器端传回的jsessionId(对于使用tomcat内核的服务器一般传回此类值)值
			if (cookieVal != null) {
				cookiesId = cookieVal.substring(0, cookieVal.indexOf(";"));
			}
		} catch (Exception e) {
			e.printStackTrace();
			getCookies() ;
		}
 很简单,我们获得cookies以后呢,重新登录该网站,当然别忘了在HTTP请求头加上需要的cookies信息啊。就是我们获取的cookiesId。这样就可以顺利登录。以后每次请求都需要带上该ID。这样我们就可以抓取需要的网页信息
分享到:
评论

相关推荐

    patyon爬虫技术PDF课件_爬虫_python_

    【标题】"patyon爬虫技术PDF课件_爬虫_python_" 涉及到的知识点主要集中在Python编程和网络爬虫技术上,Paton可能是课程作者或讲师的名字。Python是一种广泛用于网络爬虫开发的高级编程语言,因为它具有简洁明了的...

    爬虫 (2).zip

    【爬虫技术初探:Python实现简单爬虫】 爬虫是一种自动抓取互联网信息的程序,它能够遍历网页、提取数据,为数据分析、信息检索等任务提供便利。本资源包含一个简单的Python爬虫案例,旨在帮助初学者快速入门爬虫...

    splider.zip

    《Python爬虫基础与知识图谱构建初探》 在当今大数据时代,数据的重要性不言而喻,而获取数据的有效工具之一就是网络爬虫。本教程由张仔良老师精心设计,旨在帮助初学者掌握Python爬虫技术,并将其应用于知识图谱的...

    Web数据挖掘研究初探.pdf

    首先是数据的收集,这一步骤通常通过爬虫技术实现。接下来是数据预处理,包括数据清洗、转换和归约等,其目的是减少噪声和冗余,提高数据质量。数据挖掘就是在这个阶段利用各种算法和模型从数据中提取知识。最后,对...

    蜘蛛

    【标题】:“蜘蛛”——网页爬虫初探 【描述】:“由于项目需要,寒假花一礼拜学了下爬虫,在此记录!2021年3月3日海成科技” 在信息技术高速发展的今天,数据采集成为了一个重要的任务。其中,网页爬虫作为一种...

    enterpriseSpider

    【企业级爬虫框架"enterpriseSpider"初探】 在当今数字化时代,数据是企业决策的重要依据,而网络爬虫作为一种高效的数据采集工具,被广泛应用于市场分析、竞争情报、用户行为研究等领域。"enterpriseSpider"便是一...

    Blog::open_book: 染陌的Blog

    用来记录学习过程以及分享技术所得的个人 blog ...《养只爬虫当宠物(Node.js 爬虫爬取 58 同城租房信息)》 《微信小程序 Demo》 《CSS 居中的几种方式》 《CSS 常见布局》 《Node.js 实现用户登陆 session》

Global site tag (gtag.js) - Google Analytics