一个完整的大作业

Posted 杨小宏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个完整的大作业相关的知识,希望对你有一定的参考价值。

 

 

 

本次爬取小说的网站为136书屋。

 

先打开花千骨小说的目录页,是这样的。

我们的目的是找到每个目录对应的url,并且爬取其中地正文内容,然后放在本地文件中。

 

2.网页结构分析

 

首先,目录页左上角有几个可以提高你此次爬虫成功后成就感的字眼:暂不提供花千骨txt全集下载。

 

继续往下看,发现是最新章节板块,然后便是全书的所有目录。我们分析的对象便是全书所有目录。点开其中一个目录,我们便可以都看到正文内容。

 

 

按F12打开审查元素菜单。可以看到网页前端的内容都包含在这里。

 

 

 

我们的目的是要找到所有目录的对应链接地址,爬取每个地址中的文本内容。

 

有耐心的朋友可以在里面找到对应的章节目录内容。有一个简便方法是点击审查元素中左上角箭头标志的按钮,然后选中相应元素,对应的位置就会加深显示。

这样我们可以看到,每一章的链接地址都是有规则地存放在<li>中。而这些<li>又放在<div id=”book_detail” class=”box1″>中。

 

 

我不停地强调“我们的目的”是要告诉大家,思路很重要。爬虫不是约pao,蒙头就上不可取。

3.单章节爬虫

刚才已经分析过网页结构。我们可以直接在浏览器中打开对应章节的链接地址,然后将文本内容提取出来。

我们要爬取的内容全都包含在这个<div>里面。

 代码整理如下

from urllib import request

from bs4 import BeautifulSoup

 

if __name__ == \'__main__\':

    # 第8章的网址

    url = \'http://www.136book.com/huaqiangu/ebxeew/\'

    head = {}

    # 使用代理

    head[\'User-Agent\'] = \'Mozilla/5.0 (Linux; android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (Khtml, like Gecko) Chrome/18.0.1025.166  Safari/535.19\'

    req = request.Request(url, headers = head)

    response = request.urlopen(req)

    html = response.read()

    # 创建request对象

    soup = BeautifulSoup(html, \'lxml\')

    # 找出div中的内容

    soup_text = soup.find(\'div\', id = \'content\')

    # 输出其中的文本

    print(soup_text.text)

运行结果如下:

 

以上是关于一个完整的大作业的主要内容,如果未能解决你的问题,请参考以下文章

一个完整的大作业

一个完整的大作业

一个完整的大作业

一个完整的大作业

一个完整的大作业

一个完整的大作业