这一节是书中的第一个比较综合的实例,包括5个.java文件,把程序实现之后没有什么大问题,只有一个接口类需要注意:LinkFilter,书中后面也说了,这个类需要实现,也给出了实现代码。这里主要说的是要注意一下这个类的引用问题。

因为这个类我是在HtmlParserTool中实现的,但是在MyCrawler中有引用,这里不必重复实现,否则会出错,具体原因我也不知道,可能是变量的作用域引起的。解决的办法就是把HtmlParserTool文件import进来就好,但是一定要具体到类:

import websphinxTest.HtmlParserTool.LinkFilter;

这样程序就能够跑通了,当然还有一点小问题,就是可能会提示编码错误,下面有举例,需要setEncoding("UTF-8"),其他的与书上一直,就是需要自己注意一下import的包和类等。

----------------------------------------------------------------------------------

程序运行结果:

控制台会提示一些异常,当得到的新文件中无法提取出新的url时,所以以猎兔首页为种子页面时能得到上述一些文件。

后来试着改变了一下种子页面为”http://www.baidu.com“,然后出现了如下结果:

当然以百度为种子页面得到的文件自然比猎兔多,也没有出现不能提取url的情况,但是会出现新的异常:

org.htmlparser.util.EncodingChangeException: character mismatch (new: 锘 [0x9518] != old:  [0xfeff?]) for encoding change from UTF-8 to GB2312 at character offset 0

网上查的结果是因为不同的页面用的编码形式不一样,需要对应不同的编码方式,但是这才刚开始做,就不再继续改进了,先记录下这个小缺点!:)

至于最顶上的aurllink文件,加了一个文件写的步骤,把url访问顺序加入进来了,不考虑重复性,利用了fw.write(link.toString()+"\n");这个方法。

学习《自己动手写网络爬虫》之记录2相关推荐

  1. 记录《自己动手写网络爬虫 》书中涉及的内容学习一些算法

    第1篇  自己动手抓取数据 第1章  全面剖析网络爬虫 3 1.1  抓取网页 4 1.1.1  深入理解URL 4 1.1.2  通过指定的URL抓取 网页内容 6 1.1.3  Java网页抓取示 ...

  2. 《用Python写网络爬虫第2版》PDF中英文+代码分析

    互联网包含了迄今为止最有用的数据集,并且大部分可以免费公开访问.但是,这些数据难以复用.它们被嵌入在网站的结构和样式当中,需要抽取出来才能使用.从网页中抽取数据的过程又称为网络爬虫,随着越来越多的信息 ...

  3. [原创]手把手教你写网络爬虫(2):迷你爬虫架构

    手把手教你写网络爬虫(2) 作者:拓海 (https://github.com/tuohai666) 摘要:从零开始写爬虫,初学者的速成指南! 封面: 介绍 大家好!回顾上一期,我们在介绍了爬虫的基本 ...

  4. 网页爬虫python代码_《用python写网络爬虫》完整版+源码

    原标题:<用python写网络爬虫>完整版+源码 <用python写网络爬虫>完整版+附书源码 本书讲解了如何使用Python来编写网络爬虫程序,内容包括网络爬虫简介,从页面中 ...

  5. python网络爬虫网易云音乐_手把手教你写网络爬虫(1):网易云音乐歌单

    大家好,<手把手教你写网络爬虫>连载开始了!在笔者的职业生涯中,几乎没有发现像网络爬虫这样的编程实践,可以同时吸引程序员和门外汉的注意.本文由浅入深的把爬虫技术和盘托出,为初学者提供一种轻 ...

  6. python爬虫教程:Python写网络爬虫的优势和理由

    在本篇文章里小编给各位整理了一篇关于选择Python写网络爬虫的优势和理由以及相关代码实例,有兴趣的朋友们阅读下吧. 什么是网络爬虫? 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页 ...

  7. 《用Python写网络爬虫》——1.5 本章小结

    本节书摘来自异步社区<用Python写网络爬虫>一书中的第1章,第1.5节,作者 [澳]Richard Lawson(理查德 劳森),李斌 译,更多章节内容可以访问云栖社区"异步 ...

  8. 用Python写网络爬虫pdf

    下载地址:网盘下载 作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你可以使用少量编程技能就可以爬取复杂的网站. <用Pyt ...

  9. 用python写网络爬虫 第2版 pd_用Python写网络爬虫(第2版)

    用Python写网络爬虫(第2版)电子书 畅销的Python网络爬虫发实战图书全新升级版,上一版年销量近40000册. 针对Python 3.6版本编写. 提供示例完整源码和实例网站搭建源码,确保用户 ...

  10. 网络爬虫python的特点有哪些_为什么写网络爬虫天然就是择Python而用

    关于这个问题,老猿就先从自己的经历讲起吧.很多年前,大约11年前,老猿我接手了一个搜索引擎的网络爬虫,那是一个用C++写的通用搜索引擎的爬虫.C++的语言,多线程的实现,爬虫的运行效率非常高.但是,找 ...

最新文章

  1. PE Header中的FIleHeader(文件头)
  2. 用中子与质子组成的二分类系统演化对称性破缺过程
  3. Python7:from module import * 和 import module 的区别
  4. shell 目录下文件名放入循环_批量删除同一目录下的文件名前缀
  5. 注册用户模块 password bug
  6. CC1310在868MHz的电路设计
  7. Qt奇淫技巧-使用QSharedMemory方式实现数据跨界面传输
  8. .net mysql数据库_.net连接MySQL数据库
  9. tensorflow入门指南
  10. 数据脱敏:数仓安全隐私保护见真招儿
  11. Python字符串转换为小写字母– str.lower()
  12. buck电路_Buck电路的多角度分析
  13. php单页搜索引擎小偷,PIGO mini php搜索小偷 v2.0 正式版
  14. Java实现QQ、微信、新浪微博第三方登录
  15. PostgreSQL 分区表一点也不差
  16. web调用摄像头拍照并上传到服务器
  17. VTD 监视器航向角与 53-2017国标 航向角对齐
  18. java 阶乘后几位,java阶乘计算获得结果末尾0的个数代码实现
  19. centos 7 显示远程窗口到本地
  20. ultraedit编辑器快速学习

热门文章

  1. qt在linux下编译资源文件,linux下Qt qrc文件的编写与应用
  2. 美通企业日报 | 英特尔百度签署新合作备忘录;佛山照明与阿里云战略合作物联网生态...
  3. protel DXP 2004
  4. 利用74HC138译码器实现数码管显示
  5. 电力线载波通信(PLC)简介
  6. 天涯明月刀手游服务器维护中,《天涯明月刀手游》12月17日服务器维护更新公告...
  7. android 音频压缩 silk,微信音频silk导出多个mp3,合并成一个mp3,压缩大小
  8. ListView刷新,图片闪烁问题
  9. FFMPEG音视频解码流程MP4音视频文件流读取(转)
  10. jmeter调用Python脚本(java调用Python程序)阶段一(可实现版)