最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 用PYTHON爬虫简单爬取网络小说

    正文概述    2020-05-04   314

    用PYTHON爬虫简单爬取网络小说

    用PYTHON爬虫简单爬取网络小说。

    这里是17K小说网上,随便找了一本小说,名字是《千万大奖》。

    里面主要是三个函数:

    1、get_download_url() 用于获取该小说的所有章节的URL。

    分析了该小说的目录页http://www.17k.com/list/2819620.html的HTML源码,发现其目录是包含在Volume里的A标签合集。所以就提取出了URLS列表。

    2、get_contents(target) 用于获取小说指定章节的正文内容

    分析了小说中第一章节的页面http://www.17k.com/chapter/2819620/34988369.html,发现其正文内容包含在P标签中,正文标题包含在H1标签中,经过对换行等处理,得到正文内容。传入参数是上一函数得到的URL。

    3、writer(name, path, text) 用于将得到的正文内容和章节标题写入到千万大奖.txt

    理论上,该简单爬虫可以爬取该网站的任意小说。

    from bs4 import BeautifulSoup
    import requests, sys
    '''
    遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!
    '''
    target='http://www.17k.com/list/2819620.html'
    server='http://www.17k.com'
    urls=[]
    
    def get_download_url():
        req = requests.get(url = target)
        html = req.text
        div_bf = BeautifulSoup(html,'lxml')
        div = div_bf.find_all('dl', class_ = 'Volume')
        a_bf = BeautifulSoup(str(div[0]),'lxml')
        a = a_bf.find_all('a')
        for each in a[1:]:
            urls.append(server + each.get('href'))
    
    
    def get_contents(target):
            req = requests.get(url = target)
            html = req.text
            bf = BeautifulSoup(html,'lxml')
            title=bf.find_all('div', class_ = 'readAreaBox content')
            title_bf = BeautifulSoup(str(title[0]),'lxml')
            title = title_bf.find_all('h1')
            title=str(title[0]).replace('<h1>','')
            title=str(title).replace('</h1>','')
            title=str(title).replace(' ','')
            title=str(title).replace('\n','')
            texts = bf.find_all('div', class_ = 'p')
            texts=str(texts).replace('<br/>','\n')
            texts=texts[:texts.index('本书首发来自17K小说网,第一时间看正版内容!')]
            texts=str(texts).replace('                                          ','')
            return title,str(texts[len('[<div class="p">'):])
    
    def writer(name, path, text):
            write_flag = True
            with open(path, 'a', encoding='utf-8') as f:
                f.write(name + '\n')
                f.writelines(text)
                f.write('\n')
    
    
    #title,content=get_contents(target)
    #print(title,content)
    #writer(title,title+".txt",content)
    get_download_url()
    #print(urls)
    i=1
    for url in urls:
        title,content=get_contents(url)
        writer(title,"千万大奖.txt",content)
        print(str(int(i/len(urls)*100))+"%")
        i+=1

    起源地下载网 » 用PYTHON爬虫简单爬取网络小说

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元