问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求一个python3爬虫代码,可以从小说网站上直接把小说的文字抄下来,并整...

发布网友 发布时间:2022-04-24 15:48

我来回答

3个回答

热心网友 时间:2022-04-18 07:33

from bs4 import BeautifulSoup
from requests.exceptions import RequestException
import re
import requests
import os

def get_html_text(url):
    try:
        r = requests.get(url)
        r.raise_for_status()
        return r.text
    except RequestException:
        return None

def get_chapter_names(html):
    soup = BeautifulSoup(html, 'lxml')
    charpter = soup.select('.bg')
    charpter_names = []
    for entry in charpter[1:]:
        charpter_name = re.findall('<h2>(.*?)</h2>', str(entry))
        file_name = re.findall('<a href.*?>(.*?)</a>', str(entry))
        if charpter_name and file_name:
            for name in file_name:
                name = name.split(' ')[0]
                charpter_names.append(charpter_name[0] + '_' + name)
        else:
            pass
    return set(charpter_names)

def get_each_url(html):
    soup = BeautifulSoup(html, 'lxml')
    urls = soup.select('ul li a')
    for url in urls:
        link = url.get('href')
        text = url.text.split(' ')[0]
        full_name = url.text.replace('?','')
        yield {'url': link, 'text': text,'full_name':full_name}
        print(text)

def get_text(url):
    r = requests.get(url)
    r.encoding = r.apparent_encoding
    soup = BeautifulSoup(r.text, 'lxml')
    items = soup.select('div.content-body')
    item = re.findall(';(.*?);', items[0].text, re.S)
    return item[0].encode()

def save_to_file(url, text, full_name):
    base_dir = 'mu'
    path = '{}\\{}\\{}'.format(os.getcwd(), base_dir, text)
    if not os.path.exists(path):
        try:
            os.makedirs(path)
        except:
            pass
    try:
        with open(path +'\\'+ full_name +'.txt', 'wb') as f:
            f.write(get_text(url))
    except:
        pass

def main():
    url = 'http://seputu.com/'
    html = get_html_text(url)
    chapters = get_chapter_names(html)
    for chapter in chapters:
        for each in get_each_url(html):
            if each['text'] == chapter.split('_')[-1]:
                save_to_file(each['url'],chapter,each['full_name'])

if __name__ == '__main__':
    main()

热心网友 时间:2022-04-18 08:51

斗罗大道之斗破苍穹之2018

热心网友 时间:2022-04-18 10:26

网上能搜到
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
婴幼儿认知功能的主义转变出现在几岁 认知发展理论心理发展过程 如何判断相亲对象是否渣男呢? 游船怎么造句 mei字造句 赏阅怎么造句 张金战个人记事 空调扇怎么关 matlab怎么运行程序文件-matlab运行程序文件的方法教程 ios8.1.1怎么没有搜索栏了 汽车急加速 排气管烟冒烟较大 python爬虫:案例三:去哪儿酒店价格信息 汽车排气管冒白色烟是怎么回事,求解答 小米蓝牙耳机开不了机,充电无反应,是什么状况? 小米蓝牙耳机怎么充电,充电的时候等都不亮,以为充满了用的时候电量低 你好,我的小米蓝牙耳机充电时红色灯亮一小会就不亮了,我看说明书是充电时一直亮。这是怎么回事? 红米蓝牙耳机 刚买回来都是好的 右耳突然没声音放回充电仓充电灯也不亮按也没有反应 蓝牙也搜不到? 买的小米蓝牙耳机充电为什么指示灯不亮? 企业网站优化的方法与技巧有哪些 营销型网站怎么做才有利于seo优化 上海网站seo优化营销有什么好的技巧? 营销网站做优化需要注意哪些细节 网站优化是什么意思? 营销型网站优化推广的常见误区有哪些呢? 营销型网站要怎么做SEO优化 怎样解决推拉窗透风的问题? 注册这种类型的公司居然“纳税最少”! 在工资薪酬方面如何合理进行税收筹划 荣耀50突然没有快充了怎么回事啊? 汽车遥控钥匙失灵恢复教程是怎么样的? 冬天汽车尾气冒很大烟 如何利用python写爬虫程序? 汽车排气管冒什么烟才算正常,你知道吗 冷车尾气冒白烟特别厉害,车热了烟也特别大,冒的特别大还正常吗? 汽车排气管冒蓝烟是什么原因 有没有免费的电影网站 给个免费的电影网来啊~ - 信息提示 我的超级快充竟然没有了,怎么回事 为什么dnf安装会写入失败【E:地下城与勇士/……】的 dnf跨区有分几个??2018的跨区表图谁有? 只有在玩DNF的时候会出现死机 卡掉 蓝屏 自动重启等现象 错误代码0x0000007E 怎么把本地磁盘C的dnf转移到磁盘E,重赏100急啊,不够再加 OPPO A83的内存多大? oppoa83新机有多少内存 oppoa83(a1)3+32,可不可以拆机扩容,有没有风险。 OPPOa1a83混合机3G运行内存32G储存能玩龙族幻想吗? 中华魂300~600字的作文,急!急!急!急!急!急!!! 中华魂征文1000字左右怎么写 中华魂征文(500字)