美文网首页
golang 用/x/net/html写的小爬虫,爬小说

golang 用/x/net/html写的小爬虫,爬小说

作者: neo_5687 | 来源:发表于2017-08-22 17:51 被阅读0次

    平时除了写代码,唯一的娱乐就是看看小说,放松一下大脑了。但在这个网站广告铺天盖地的环境下,想单纯的看会小说也成了一个问题了。最近在学习golang,于是就想写一个小爬虫,把小说爬下来看而不用看到讨厌的广告了。

    网上大多数教程都是用第三方库,很多都是用github.com/PuerkitoBio/goquery这个库,但因为从来没写过web,对jquery的语法完全是空白,而go语言圣经上的示例用到x/net/html这个google自己维护的库来爬网站的链接,于是研究了一下这个库,写了一个小爬虫,事实证明这个库写爬虫完全没问题,只不过比goquery麻烦一点,毕竟goquery是在这个库的基础上封装的,这个库更底层一点。

    特写下这往篇日记,记心太烂,怕过一段时间又忘了。

    经过这几天恶补了一下html方面的知识,对爬虫的编写有所了解:

    一:先把网站源码get到手,

    二:用html.Parse解析得到html文件的结点树

    三:用chrome或firefox查看网页的结构,找到想要的内容的结点

    最后就是递归找到想要的结点,然后把结点下的内容写到本地文件内就ok了

    要注意网页的编码,golang只能用utf8,国内很多网站用的是gbk编码,需要转码,转码可以用

    github.com/mahonia库。

    分析网页结构:

    找了三个网站做实验,起点(utf8),笔趣阁(gbk编码)和新笔趣阁(utf8),起点的结构和另外两个不一样。

    起点的:

    utf8编码 找到这个结点

    笔趣阁的:

    gbk编码 &nbsp转码后变成乱码了,需要单独处理,不知道是库的原因还是我不会用,我觉得&nbsp不应该被转码才对,转了之后就无法正常解析了

    新笔趣阁:

    也是utf8,不用转码 因为不用转码,所以&nbsp能得到正确解析

    代码很少,就放在一个文件里了

    漏了一行代码: defer  text.Close()  打开的文件要手动关闭 笔趣阁 新笔趣阁 起点

    本来想直接贴代码的,但贴上来之后格式全乱了,只好截图了,代码那几张图是连在一起的。

    相关文章

      网友评论

          本文标题:golang 用/x/net/html写的小爬虫,爬小说

          本文链接:https://www.haomeiwen.com/subject/bvmldxtx.html