2018-12-06

#第一次实现简单爬虫,记录一下爬取全书网中《盗墓笔记》的部分章节

代码还有待完善,重复追加内容写入会遇到txt文本大小限制引起代码终结。

很多不必要的代码可以删除的,静态网页还是比较好爬的,加油!

下回爬一下动态网站!

继续学习!!


以下代码:


import requests

from bs4 import BeautifulSoup

class Download(object):

    def __init__(self):

        self.target='http://www.quanshuwang.com/book/9/9055'

        self.href_list = []

        self.chapter_name=[]

        self.num =0

        self.head = {

            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',

            'Accept': 'text/html,application/xhtml',

            'connection': 'keep-alive',

            'Accept - Encoding':'gzip, deflate'

        }

    #用于获取小说目录的url

    def get_url(self):

        self.req = requests.get(url=self.target,params='html',headers=self.head)

        self.req.encoding = 'gbk'

        self.html =self.req.text

        self.bf_url=BeautifulSoup(self.html)

        self.div=self.bf_url.find_all('div',class_='clearfix')

        self.div_a =BeautifulSoup(str(self.div[1]))

        self.a =self.div_a.find_all('a')

        #删除不要的章节!

        self.num = len(self.a[:5])

        for each in self.a[:5]:

            self.chapter_name.append(each.string)

            self.href_list.append(each.get('href'))

        #URL获取好列表了,该模块进行下载储存

    def down_novel(self,herf):

        self.url = requests.get(url=herf)

        self.url.encoding='gbk'

        self.url_text = self.url.text

        self.url_bf =BeautifulSoup(self.url_text)

        self.url_bf_div =self.url_bf.find_all('div',class_='mainContenr')

        self.url_bf_div_text= self.url_bf_div[0].text.replace('\xa0'*8,'\n\n')

    def write(self):

        with open('novel.txt', 'a', encoding='utf-8') as f:

            f.write('\n')

            f.writelines(self.url_bf_div_text)

            f.write('\n\n')

if __name__ == '__main__':

    dl = Download()

    dl.get_url()

    for i in dl.href_list:

        dl.down_novel(i)

        dl.write()



 作者:Kang

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 声明:本文讲解的实战内容,均仅用于学习交流,请勿用于任何商业用途! 一、前言 强烈建议:请在电脑的陪同下,阅读本文...
    Bruce_Szh阅读 12,788评论 6 28
  • 1.查询请求GET 请求类型method为get,请求的url,请求头headers,传参params字典型;可以...
    大树_20e9阅读 187评论 0 0
  • If you pay peanuts, you get monkey. Computation on HMM Vi...
    Sorcerer_7104阅读 294评论 0 1
  • 数组(二) 一、 数组的应用 (一) 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较...
    拾起_518阅读 235评论 0 0
  • 最近,画画比较少。晚上,都画的简单有趣搞笑的。放松心情。
    猫恋一夏阅读 219评论 2 5