笔趣阁小说优化版

#-*-coding:utf-8-*-
# 笔趣阁
import requests
from lxml import etree

def url_processing(url):   # 网址处理函数
    if requests.get(url).status_code > 200 and requests.get(url).status_code < 300:
        print('网址输入错误请重新输入,返回的状态码为%s' % (requests.get(url).status_code))
        return []
    else:
        print('正在打开',url)
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'}
        res = requests.get(url=url, headers=headers)
        html = res.text
        return html

def extract(html):   # 数据提取函数
    tree = etree.HTML(html)         # xpath
    urs = tree.xpath('//dd/a/@href')
    return urs

def urls_cl(urs):
    for i in range(9, len(urs)):
        headers = {
            'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.15 Safari/537.36'}
        res = requests.get(url=urs[i], headers=headers)
        tr = etree.HTML( res.text)
        txt_a = tr.xpath('//div[@class="bookname"]/h1/text()')[0]   # 标题
        txt_b = tr.xpath('//div[@id="content"]/p/text()')[0]      # 内容
        tra = txt_a + '\n' + txt_b
        for i in range(1, len(urs) + 1):
            file = '第' + str(i) + '章.txt'
            print('开始爬取第', str(i), '章' )
            with open(file, 'a', encoding='utf-8') as fp:
                fp.write(tra)
            print('第',str(i), '章爬取完成')
    return '爬取全本完成'

if __name__ == '__main__':
    ur = 'https://www.biquge5200.cc/'
    a = str(input('请输入书号')) # 例如:0_844
    url = ur + a
    urls_cl(extract(url_processing(url)))

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值