半小时学会网络爬虫-Go和python两种语言实现,带你白嫖小说

本文介绍了如何使用Go和Python两种语言实现网络爬虫,以爬取小说为例,详细阐述了爬虫的基本步骤,包括发起HTTP请求、解析网页数据和保存内容。通过分析网页源码,提取出小说的标题和内容,实现无广告阅读。
摘要由CSDN通过智能技术生成

安利

想要学习更多Golang语言的知识,请关注我的公众号,我将在第一时间发送文章到公众号,第一时间获取学习资料。你想学习的,我这里都有呦!!!

添加方式:微信搜索:Golang梦工厂,或者直接扫描下方二维码即可:
在这里插入图片描述

前言

大家好,我是asong,这是我的第四篇原创文章,这一文,我将介绍网络爬虫系列的教程,使用GO和python分别实现最简单的爬虫------爬取小说。其实这篇文章就是教大家怎么白嫖,在这个网站广告铺天盖地的环境下,我们想单纯的的看会小说也成了一个问题,所以我们就可使用爬虫技术,把小说爬下来,就不用看烦人的广告了。话不多说,开整…

什么是爬虫

对于这种问题,我们可以直接去百度百科看介绍,网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。看看,百度百科介绍的多么好,多么通俗易懂。

网络爬虫有什么用呢?网络爬虫是大数据行业获取数据的核心工具。没有网络爬虫自动地、不分昼夜地、高智能地在互联网上爬去免费的数据,那些大数据相关的公司恐怕要少四分之三。现在的爬虫基本上都是围绕web网页的,所以我们爬虫就是根据网页地址(URL)爬取网页内容,网页地址就是我们在浏览器中输入的网站链接。例如我们常用的百度:https://www.baidu.com,这就是一个URL。URL专业的叫法是统一资源定位符,格式如下:
protocol 😕/ hostname[:port] / path / [;parameters][?query]#fragment

URL 的格式主要由前个三部分组成:

  • protocol:第一部分就是协议,例如百度使用的就是https协议;
  • hostname[:port]:第二部分就是主机名(还有端口号为可选参数),一般网站默认的端口号为80,例如百度的主机名就是www.baidu.com,这个就是服务器的地址;
  • path:第三部分就是主机资源的具体地址,如目录和文件名等。

所以有了URL,我们就可以去指定位置获取我们想要的数据信息。有了数据,我们需要对数据进行分析,所以就引出了爬虫另一项必备技能:审查元素。

我们在浏览器浏览的每一个网页,我们都可以查看其网页源码,也就是HTML。这些HTML就决定了网站的原始容貌。这里就不介绍HTML的具体使用了,想要学习的网络资源很多。比如我们使用Chrome 浏览器,在谷歌首页我们右键点击检查(其他浏览器不同,这里不做介绍),在右侧就会出现一大堆代码,这些代码,就叫做HTML。

浏览器就是作为客户端从服务器端获取信息,然后将信息解析,并展示给我们。所以我们根据HTML就可以分析出网页内容。好啦,基本的基础知识已经知道了,下面就开始我们的实践吧!!!

爬虫实例

1. 爬取网站小说介绍

这里的实例,我们下载文字内容,也就是下载一本小说。小说网站,我们选择的新笔趣阁。链接:https://www.xsbiquge.com/。

这个网站只支持在线浏览,不支持小说打包下载,所以我们就可以使用我们的爬虫技术下载一本小说,解决不能本地看小说的问题。由于本人不看小说,所以直接去小说排行榜选了第一名,《三国之他们非要打种地的我》。名字就很有吸引力嘛!!!!

2. 相关技术介绍

本次教程使用两种语言进行开发,分别是Golang和Python。Golang我们使用自带的HTTP库进行网站获取和google自己维护的库x/net/html进行网页数据解析。Python我们使用requests库进行网页获取,使用BeautifulSoup进行网页数据解析。

2.1 golang.org/x/net/html

x/net/html是google自己维护的库,主要可以帮助我们解析网页数据,我们只需要导入golang.org/x/net/html这个包就可以,使用方法也挺简单,就不在这里做具体介绍,可以到GO圣经:https://godoc.org/golang.org/x/net/html#Parse
进行学习,里面有样例,很好懂。

2.2 BeatifulSoup

BeautifulSoup是python的一个第三方库,主要帮助我们解析网页数据。我们要使用这个工具,需要提前进行安装,在cmd中,我们使用pip命令进行安装,命令如下:

pip install beautifulsoup4

安装好之后,我们还需要安装lxml,这是解析HTML需要用到的依赖:

pip install lxml

这就可以使用了,具体的学习教程可以到官方中文教程:

https://beautifulsoup.readthedocs.io/zh_CN/latest/

2.3 requests

requests库很强大,我们可以使用requests库进行网页爬取。requests库是第三方库,需要我们自己安装。安装简单,使用pip命令即可安装:

pip install requests

requests库的github地址:

https://github.com/requests/requests

具体学习可以按demo进行学习。

3. 爬虫步骤

总共就分为三步:

  • 第一步:发起请求,我们需要明确如何发起HTTP请求,获取到数据。

  • 第二步:解析数据,获取到的数据乱七八糟的,我们需要提取出我们想要的数据。

  • 第三步:保存数据:将我们想要的数据,保存下载。

4. 开始实践

备注:

我已将我整个项目上发到我的github上面了。Golang代码GitHub地址如下:
https://github.com/sunsong2020/Golang_Dream/tree/master/reptile_go
Python代码Github地址如下:
https://github.com/sunsong2020/Golang_Dream/tree/master/reptile_py

4.1 获取网页

我们完全按照步骤来,第一步,我们先获取网页数据。因为我们要获取整章的小说,所以我们先去查看小说目录,并查看它的网页源码,如下:

解析网页在下一节进行讲解。我们先获取目录网页,然后在获取文章网页,这样章节title和内容就对应起来了。小说第一章查看如下:

知道了这两个网页的地址,我们就可以获取网页了。
Golang可以使用标准库net/http进行网页获取,样例如下:

resp,err := http.Get(target)
if err!=nil{
   
   fmt.Println("get err http",err)
   return err
}

直接调用Get方法即可,target就是要获取的网页URL。
Python可以使用requests库进行获取网页,样例如下:

req = requests.get(url=target)
req.encoding = 'utf-8'
html = req.text

直接调用get方法即可,target即URL,req.tex就说获取的网站内容,可以print打印一下看的更清楚。这里设置了编码方式为utf-8,本次爬取的网站本身就是utf-8编码,所以不需要转换,如果爬取的网站是GBK编码的就需要进行编码转换。

4.2 解析网页

获取到了网页,下面我们就开始进行解析网页。Golang我们使用x/net/html这个库,使用go get指令就可以获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值