python小爬虫-爬小说(html)

python小爬虫-爬小说(html)

 先挑个软柿子捏捏吧,硬的现在还不行。  就结合网页html的各种标签,爬取已在源码内的信息。就观察标签的的特点,利用bs4中的BeautifulSoup()进行获取信息。代码如下:
import requests
from bs4 import BeautifulSoup


"""
使用BeautifulSoup 解析获得的html网页
下载静态网页中的小说内容
author: goodlikeyou
2020-9-1
"""


# 一个获取小说每一章的地
def get_content():
    re = requests.get('https://www.ranwen8.com/book_118574/')
    html = re.text             # 获取到网页信息
    bs = BeautifulSoup(html, 'html5lib')   # 使用BeautifulSoup进行解析
    div = bs.find_all('div', class_='book_list')   # 获取网页中所有div 且class = book_list的标签,获得一个列表
    bs1 = BeautifulSoup(str(div[0]), 'html5lib')   # 同样将的到的列表转化为字符串后,再解析一次
    target = bs1.find_all('a')          # 获取网页信息中 所有a标签的内容,得到的结果是一个列表,
    i = 0

    for each in target[12:]:  # 从第十二个地址开始下载,避免重复
        link = 'https://www.ranwen8.com/book_118574/' + str(each.get('href'))  # 获得完整的网页连接
        request = requests.get(link)
        gg = request.text
        df = BeautifulSoup(gg, 'html5lib')
        content = df.find_all('div', class_='contentbox clear')  # 此时已找到网页上的章节内容
        xs_content = content[0].text.replace('\xa0' * 4, '\n\n')  # .text可以去除<br>等内容附带的标签,replace则是处理&nbsp的操作
        with open('mulongshi.text', 'a', encoding='utf-8') as f:  # 下载到文件中
            f.writelines(each.string + '\n\n')
            f.writelines(xs_content)
            f.write('\n\n'*2)
        i += 1
        print('第%d章下载完毕' % i)

    return 'ok,all is over!'


if __name__ == '__main__':
    xs = []
    # url = 'https://www.ranwen8.com/book_118574/'
    # fore_url = 'https://www.ranwen8.com/book_'
    a = get_content()

具体的网页,就不贴出来了,不想多说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值