小说爬虫之幻月书院requests和re库

刚学了正则表达式,直接用上爬虫来试试,不多说直接上代码:

#!/usr/bin/python3
import requests
import re


class HuanYue:
    def __init__(self):
        self.url = "http://www.huanyue123.com/book/7/7717/"
        self.headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36"}

    def parse(self, parse_url):
        response = requests.get(url=parse_url, headers=self.headers).content.decode('gbk')
        html = re.compile('<div id="htmlContent" class="contentbox clear"><div style=".*?" ><a href=".*?" style=".*?">.*?</a></div>(.*?)</div>', re.S).findall(response)
        # print(html[0].replace('&nbsp;&nbsp;&nbsp;&nbsp;', '    ').replace('<br />', ''))
        txt = html[0].replace('&nbsp;&nbsp;&nbsp;&nbsp;', '    ').replace('<br />', '')
        return txt

    def write(self, txt):
        with open('C:\\Users\\cj\\Desktop\\小说.txt', 'a+', encoding='utf8') as f:
            f.write(txt)
            f.close()

    def run(self):
        req = requests.get(url=self.url, headers=self.headers).content.decode('gbk')
        text = re.compile('<li><a href="(.*?)">(.*?)</a></li>', re.S).findall(req)
        for url in text:
            parse_url = url[0]
            title = url[1]
            print('下载:', title)
            print('下载url:', parse_url)
            txt = self.parse(parse_url)
            self.write(txt)
            print(title, '下载完了!')


if __name__ == '__main__':
    t1 = HuanYue()
    t1.run()



在这里插入图片描述
在这里插入图片描述
以上是随便找了一个小说进行爬取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值