美文网首页大数据 爬虫Python AI Sql
用Python写一个最简单的爬虫程序

用Python写一个最简单的爬虫程序

作者: Miltonlong | 来源:发表于2018-04-23 11:49 被阅读34次

    在爬虫里面最容易爬取的就是静态网页。静态网页也就是纯粹HTML格式的网页。

    这种网站适用于一般更新较少的展示型网站,爬取这种网站是比较容易的,因为所有的数据都在网页源代码里面,不需要抓包分析。

    前几天在网吧跟朋友玩游戏,旁边一哥们在那看小说,瞄了一眼,我进网站一看,发现是一个盗版小说网站,这种网站没有APP,只能在网页上面看,但是页面会有非常多的广告,用户体验很差。那么今天我们就来完成对这个网站小说的爬取。

    声明:本文只作为技术交流,看小说,请支持正版。

    声明:本文只作为技术交流,看小说,请支持正版。

    声明:本文只作为技术交流,看小说,请支持正版。


    1.网页分析

    写爬虫和写其他的程序不太一样,爬虫必须按照目标网站的规则来写。

    http://www.biquge5200.com/

    这是我们的目标网站。

    今天我来写一本小说的爬取,如果有兴趣,看完本文可以试一试将整个网站小说的爬取。

    选择《斗神狂飙》这本小说,这是这本小说的主页面,这个页面上,有每一章节小说内容的链接。我们点开一章看看。

    http://www.biquge5200.com/14_14621/6219947.html

    这是读者的阅读界面,对于我们来说,这个不重要,爬虫最重要的就是要知道数据的来源。点击鼠标右键,查看网页源代码,可以看到,这一章的小说内容都写在网页源代码里面。这就是静态网页一个显著的特点,对于爬虫来说就非常方便。

    2.代码实现

    这三行代码可以打印出这个网页的源代码。

    那么问题来了,我们不需要全部的源代码,我们只需要里面的小说部分和每一章的标题(后面写文件的时候用)。常用的就是两种方法,一种是用正则表达式来提取内容;另一种是导入BeautifulSoup模块来提取。

    这里我就用正则表达式来提取。我们需要提取两个内容,一个是标题,一个是正文。标题很容易找,就在 title 标签里面,正文内容在 id = “content”的 div 标签面。

    可以看到我们成功的把想要的内容获取到了,但是仍然还有点问题,了解果HTML的朋友应该知道,内容里面的
    是换行符。可以用它来分割字符串。

    毕竟是盗版小说网站,里面有很多广告,所以稍微处理了一下。

    现在我们已经获取了一章的内容,之前说过,在小说的主页里面有每一章节的链接。所以我们从这里下手。查看网页源代码。

    同样使用正则表达式,获取所有的链接都在这里了。

    那么在用循环就可以获取的每一章的小说内容。这里为了避免代码的重复,可以定义函数。

    现在我们虽然获取到了,但是还差把获取到文字写入本地文件。Python有一种非常方便的方法 with open,由于全是文本,我们就把他写入到txt文件中。

    我在这里控制了请求间隔,间隔1秒,是因为这个网站请求太快,服务器显示太忙。如果想快一点,可以设置时间短一点。

    然后就可以看小说了。

    获取网站的全部内容

    现在我们已经成功的爬取了一本小说了。如果我们现在想爬取整个网站呢。

    点到全部小说,可以看到所有小说的链接。相信如果看明白了我上面的内容,自己应该能写出来爬取全网站的程序。这里我就不写了,有兴趣的可以研究一下。

    小结

    今天爬取这个网站,用到了三个模块 requests,re,time,requests是非常好用的第三方库,每个学习爬虫的朋友都应该学习的一个库。后面我也会专门写一个requests用法的文章。re库Python的标准库,是用于正则表达式的。还有一个time 模块,为了给程序写一个时间间隔。当然这些模块不仅仅有这些功能。后面的文章会慢慢写到这些内容。

    对于刚接触Python或爬虫的朋友,可能看不太明白。这篇文章的思路更加重要。写爬虫就是先要手动实现,然后根据网页规则在来写。

    更多有趣的内容请关注公众号:python爬虫知识。

    相关文章

      网友评论

        本文标题:用Python写一个最简单的爬虫程序

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