• 大小: 5KB
    文件类型: .py
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: Python
  • 标签: python  爬虫  17k  小说  

资源简介

改下用户名密码可以直接用,爬取VIP章节需要开通VIP,免费章节可以随便爬

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
# @Time    : 2019/5/19 17:53
# @Author  : LM

import requests
from bs4 import BeautifulSoup
import json
import os
import datetime


class Spider(object):
    def __init__(self):
        self.headers = {‘user-agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/73.0.3683.86 Safari/537.36‘}
        print(‘请输入要爬取的小说名‘)
        self.novel_name = input()
        self.chapters_url = ‘‘
        self.download_url_ls = {}
        self.loginName = ‘17623609183‘
        self.password = ‘liangqi520‘

    def verify(self):
        now = datetime.datetime.now()
        start_time = datetime.datetime.strptime(‘2019-05-20 01:00:00‘ ‘%Y-%m-%d %H:%M:%S‘)
        delta = now - start_time
        if delta.seconds/60 > 10:
            quit()
        else:
            print(‘验证成功‘)

    def login(self):
        data = {
            ‘loginName‘: self.loginName
            ‘password‘: self.password
        }
        login_url = ‘https://passport.17k.com/ck/user/login‘
        session = requests.Session()
        html = session.post(url=login_url data=data headers=self.headers).text
        json_data = json.loads(html)
        if json_data[‘status‘][‘msg‘] == ‘succ‘:
            print(‘登陆成功,当前账户:{}‘.format(self.loginName))
            return session
        else:
            print(‘用户名或者密码错误‘)

    def catalogue(self):
        url = ‘https://search.17k.com/search.xhtml?c.st=0&c.q=‘ + self.novel_name
        html = requests.get(url=url headers=self.headers).text
        soup = BeautifulSoup(html ‘lxml‘)
        res = soup.findAll(attrs={‘class‘: ‘textmiddle‘})
        for i in res:
            info = i.select(‘ dl > dt > a‘)[0]
            searched_name = info.get_text().strip()
            if searched_name == self.novel_name:
                print(‘{}:查找成功‘.format(self.novel_name))
                self.chapters_url = ‘https://‘ + info.get(‘href‘)[2:].replace(‘book‘ ‘list‘)
                break
            print(‘查找失败,不存在该小说或拼写错误‘)

    def get_download_url(self):
        html = requests.get(url=self.chapters_url headers=self.headers)
        html.encoding = ‘utf-8‘
        soup = BeautifulSoup(html.text ‘lxml‘)
        volume = soup.find_all(‘dl‘ c

评论

共有 条评论