Python学习(五)简单爬虫

#Python学习(五)
##简单爬虫

今天我们来介绍一个利用Python进行爬虫的小项目,在起点中文网爬取免费小说并保存到文件中。

在这之前我们需要安装两个库:
requests
BeautifulSoup
具体安装方式就不再详细说明了,不懂的请参考我之前那篇使用pip安装库的文章。

首先我们需要获取网页HTML:

try:
        r = requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
except:
        return ""

我们先来认识一下 try-except 这个语法,在这个语法中,先执行try下面的代码块,如果执行完毕没有发生错误则跳过excepy部分,直接进入后面的代码,如果发生了错误,则去执行except下面的代码块。

我们来认识一下requsts的主要函数和方法。
在这里插入图片描述在这里插入图片描述

在第一句话中有一个参数为timeout = 30,这里是最大请求时间为30毫秒,如果在30毫秒内没有请求成功则停止访问,如果不加这个参数,访问错误也会继续访问下去,不会有任何返回提示。
在获取编码方式的语句中,有些时候网页获取可能会出现错误导致乱码,我们也可以自己进行查询来定义编码方式。

比如我们要爬取一篇小说
在这里插入图片描述按F12打开网页源代码
在Network-Doc中可以看到页面的标签等数据
在这里插入图片描述从这里可以看到网页的编码方式为UTF-8

在这个网页中所包含的信息是十分多的,但是我们只想要小说的文字内容,就需要将这些数据筛选出来。

可以发现这一行就是正文内容了,标签为


在这里插入图片描述
我们来提取这些数据。

 html = getHTML(url)
 soup = BeautifulSoup(html,'html.parser')
 title = soup.select('div.span.content-wrap')
 paras = soup.select('p')
 return paras

select方法中参数就是需要的数据标签。
下面是标题的标签。
在这里插入图片描述到这里为止我们就已经爬取完毕了,我们来看一下效果。
在这里插入图片描述

接下来我们只需要将这些数据保存到文件中,再修改一下格式。

f=open('pc.txt','w')
for t in text:
    if len(t) > 0:
        f.writelines(t.get_text() + "\n\n")
f.close()

如果出现获取编码失败的情况,我们还需要在’w’后面自己加上编码方式。

在前两部分中,我们还需要网页的url这一参数。在Header中我们可以很容易发现这些信息。
在这里插入图片描述

将三部分整合完善之后,我们来看一下效果。

在这里插入图片描述我们发现虽然文章已经爬取下来了,但是前8行数据是多余的,所以我们需要去掉前8个标签

的数据。

 paras = paras_tmp[8:]

这里就表示去掉前八个数据。

这样我们就全部完成了,我们来看看效果。
在这里插入图片描述
##以上就是本节的全部内容,后续内容会逐渐上传,相关源码也会统一上传,也可以到公众号私聊我要。

##不足之处请及时指出,相互学习

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值