网络爬虫小案例_2017/3/10

今晚,了解了一下网络爬虫,那么什么是网络爬虫呢?

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常被称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本,已被广泛应用于互联网领域。搜索引擎使用网络爬虫抓取Web网页、文档甚至图片、音频、视频等资源,通过相应的索引技术组织这些信息,提供给搜索用户进行查询。网络爬虫也为中小站点的推广提供了有效的途径,网站针对搜索引擎爬虫的优化曾风靡一时。

网络爬虫的基本工作流程如下:

    1.首先选取一部分精心挑选的种子URL;

    2.将这些URL放入待抓取URL队列;

    3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。

    4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。

当然,上面说的那些我都不懂,以我现在的理解,我们请求一个网址,服务器返回给我们一个超级大文本,而我们的浏览器可以将这个超级大文本解析成我们说看到的华丽的页面

那么,我们只需要把这个超级大文本看成一个足够大的String  字符串就OK了。

下面是我的代码

package main.spider;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;

/**
 * Created by 1755790963 on 2017/3/10.
 */
public class Second {
    public static void main(String[] args) throws IOException {
        System.out.println("begin");
        Document document = Jsoup.connect("http://tieba.baidu.com/p/2356694991").get();
        String selector="div[class=d_post_content j_d_post_content  clearfix]";
        Elements elements = document.select(selector);
        for (Element element:elements){
           String word= element.text();
           if(word.indexOf("@")>0){
               word=word.substring(0,word.lastIndexOf("@")+7);
               System.out.println(word);
           }
            System.out.println(word);
        }
    }
}

我在这里使用了apache公司所提供的jsoup   jar包,jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

在代码里,我们可以直接使用Jsoup类,并.出Jsoup的connect()方法,这个方法返回一个org.jsoup.Connection对象,参数则是网站的url地址,Connection对象有一个get()方法返回Document对象

document对象的select方法可以返回一个Elements对象,而Elements对象正式Element对象的集合,但select()方法需要我们传入一个String参数,这个参数就是我们的选择器

String selector="div[class=d_post_content j_d_post_content  clearfix]";我们的选择器语法类似于jquery的选择器语法,可以选取html页面中的元素,选择好后,就可以便利Elements集合,通过Element的text()方法获取html中的代码这样,一个最简单的网络爬虫就写完了。我选择的网址是 豆瓣网,留下你的邮箱,我会给你发邮件  这样一个百度贴吧,我扒的是所有人的邮箱地址附上结果:

				
时间: 2024-07-29 02:23:21

网络爬虫小案例_2017/3/10的相关文章

Python网络爬虫实战案例之:7000本电子书下载(2)

一.前言 本文是<Python开发实战案例之网络爬虫>的第二部分:7000本电子书下载网络爬虫开发环境安装部署.配套视频课程详见51CTO学院. 二.章节目录 (1)Python开发环境依赖(2)Python依赖程序安装(3)Requests-html安装(4)Requests-html 源码框架下载(5)Requests-html 开发指导手册 三.正文 3.1 Python开发环境依赖 3.2 Python依赖程序安装 3.3 requests-html安装 3.4 requests-ht

Python网络爬虫实战案例之:7000本电子书下载(3)

一.前言 本文是<Python开发实战案例之网络爬虫>的第三部分:7000本电子书下载网络爬虫开发实战详解.配套视频课程详见51CTO学院请添加链接描述. 二.章节目录 3.1 业务流程3.2 页面结构分析:目录页3.3 页面结构分析:详情页3.4 页面请求和响应:目录页4.5 页面请求和响应:详情页3.4 三.正文 3.1 业务流程 3.2.1 页面结构分析-目录页 3.2.2 页面结构分析-详情页 3.3 页面请求与解析-目录页 3.4 页面请求与解析-详情页 3.5 文件下载 四.未完待

Python网络爬虫实战案例之:7000本电子书下载(4)

一.前言 本文是<Python开发实战案例之网络爬虫>的第四部分:7000本电子书下载网络爬虫-源码框架剖析.配套视频课程详见:51CTO学院. 二.章节目录 3.1 requests-html文件结构3.2 requests-html源码框架3.3 导入依赖库3.4 HTMLSession请求类3.5 HTMLResponse请求响应类3.6 HTML页面结构类 三.正文 3.1 requests-html 文件结构 3.2 requests-html源码框架 3.3 导入依赖库 3.4 H

《Python3网络爬虫实战案例(崔庆才著)》 中文版PDF下载,附源代码+视频教程

<Python3网络爬虫实战案例(崔庆才著)>中文版PDF下载,附源代码+视频教程,带目录资料下载:https://pan.baidu.com/s/1OzxyHQMLOzWFMzjdQ8kEqQ 原文地址:http://blog.51cto.com/7369682/2330247

2017年最新Python3.6网络爬虫实战案例基础+实战+框架+分布式高清视频教程

课程简介: 这是一套目前为止我觉得最适合小白学习的体系非常完整的Python爬虫课程,使用的Python3.6的版本,用到anaconda来开发python程序,老师讲解的很细致,课程体系设置的也非常棒,完全是从浅入深一点点讲解,从Python爬虫环境的安装开始,讲解了最最基本的urllib包如何使用,如何解析request请求内容,刷选有用数据,像ajax,post,html,json等等都非常细致的一一讲解,然后逐步深入到如何利用cookie,ip代{过}{滤}理池的技术,来解决登陆验证与防

《java入门第一季》之HashSet小案例:获取10个1至20的随机数,要求随机数不能重复

这是基于HashSet集合的唯一性. /* * 编写一个程序,获取10个1至20的随机数,要求随机数不能重复. * * 分析: * A:创建随机数对象 * B:创建一个HashSet集合 * C:判断集合的长度是不是小于10 * 是:就创建一个随机数添加 * 否:不搭理它 * D:遍历HashSet集合 */ 代码写了出来: import java.util.HashSet; import java.util.Random; public class HashSetDemo { public s

网络爬虫入门——案例一:爬取百度贴吧帖子

参考资料: Python:http://www.runoob.com/python/python-intro.html Python爬虫系列教程:http://www.cnblogs.com/xin-xin/p/4297852.html 正则表达式:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html 本贴目标: 1.对百度贴吧的任意帖子进行抓取 2.指定是否只抓取楼主发帖内容 3

网络爬虫入门——案例三:爬取大众点评的商户信息

pyspider:http://demo.pyspider.org/ CSS选择器:http://www.w3school.com.cn/cssref/css_selectors.asp Beautiful Soup:http://beautifulsoup.readthedocs.io/zh_CN/latest/ 正则表达式:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

js小案例---1.随机10不重复10数并排序2.一次输入10数并输出和

<script>var array=new Array();for(var i=0;i<10;i++){ array[i]=parseInt(Math.random()*100); for(var j=0;j<=i;j++) { if(parseInt(array[i])==parseInt(array[j])&&i!=j) { --i; } }}for(var i=0;i<10;i++){ for(var j=0;j<=i;j++) { var a;