码迷,mamicode.com
首页 > 其他好文 > 详细

一个完整的大作业

时间:2017-10-29 12:55:38      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:div   head   5.0   结果   分享   find   元素   and   爬虫   

 

 

 

本次爬取小说的网站为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)

运行结果如下:

技术分享

 

一个完整的大作业

标签:div   head   5.0   结果   分享   find   元素   and   爬虫   

原文地址:http://www.cnblogs.com/yxhjss/p/7749615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!