吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8782|回复: 39
收起左侧

[Python 转载] Python 为所欲为的小虫子, 爬小说代码 ! 速度上车...

  [复制链接]
小心boss 发表于 2019-12-3 21:17
本帖最后由 小心boss 于 2019-12-3 22:10 编辑

# 现在想下本小说还真是不容易....
# 自己动手,丰衣足食!!!
# 脚本没有加入多线程,速度比较慢,开始下载了抽根烟再回来把,哈哈
各位大佬,如果感觉有用的话,给个分,想升级......拜谢!


3楼有打包好的EXE文件,WIN下可以直接运行...懒人福利


[Python] 纯文本查看 复制代码
'''
人生苦短,我用Python
'''
###以此怀念###
import re
import os
import lxml
import random
import requests
from bs4 import BeautifulSoup

###################### 全局变量 ##############################
book_url = ''
ua = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
      'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
      'Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50',
      'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
      'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)'
      ]
Usera = random.choice(ua) #随机一个ua
headers = {'User-Agent':Usera,
           'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
           'Accept-Encoding': 'gzip',
           "Referer": "https://www.bqg3.com/quanbuxiaoshuo/"}  # 创建头部信息
##############################################################
def get(url):  # 发送网络请求
    a = requests.get(url, headers=headers)
    a.encoding= 'gb18030'
    html = a.text
    return html

def main(book_name):
    find_book(book_name)
    if book_url != '':

        print('正在获取小说章节信息,请稍后...')
        mulu  = BeautifulSoup(get(book_url), 'lxml')  # 解析爬取网址
        all_zj = mulu.find('dl').find_all('a')


        for j in all_zj:
            mulu_list = [j.get('href')]  # 过滤出章节链接
            zj_name = j.contents[0]
            zj_name = str(re.findall(r'\w*',zj_name))
            zj_name = zj_name.replace(("'"),'')
            zj_name = zj_name.replace((" "),'')
            zj_name = zj_name.replace((","),'')     #过滤掉会导致异常的字符
            for k in mulu_list:
                zj_url = 'https://www.bqg3.com' + k
                a = (zj_name,zj_url)
                down(a)     #调用下载函数


def down(text_url):

    zj_name = text_url[0]
    txt_url = text_url[1]

    soup = BeautifulSoup(get(txt_url), 'lxml')
    zz = r'<div id="content">(.*?)</div>'
    text = re.findall(zz, str(soup.contents[1]), re.S)
    text = text[0].replace('<br/>', '')
    text = text[30:-len(book_url)]
    try:
        with open(book_name + '.txt', 'a+',encoding='utf-8')as f:
            print('下载小说章节%s...' % zj_name, txt_url)
            f.write('\n'+zj_name+'\n\n'+text+'\n')
    except Exception as e:
        print('错误信息: ',e)


def new_dir(name):  # 创建文件夹
    if os.path.exists(name):
        print('"%s"  文件夹已存在'%name)
        os.chdir(name)
    else:
        print('创建文件夹: {}'.format(name))
        os.mkdir(name)
        os.chdir(name)



def find_book(name):
    global book_url

    print('正在书库中查找 <%s> 请稍后...'%name)
    url1 = 'https://www.bqg3.com/quanbuxiaoshuo/'
    soup = BeautifulSoup(get(url1),'lxml')
    all_book = soup.find('div', id='main').find_all('a')
    for i in all_book:
        if i.contents[0] ==name:
            book_url = i.get('href')
            print(' 小说URL地址: ',book_url)
            break
    else:
        print('''# 该小说未找到或网站未收录!!! #\n# 请确认书名是否输入正确!     #\n# 重试或搜索别的小说试试吧!   #''')

if __name__ == '__main__':
    print("####################################################################")
    print("# 现在想下本小说还真是不容易....")
    print("# 自己动手,丰衣足食!!!")
    print("# 脚本没有加入多线程,速度比较慢,开始下载了抽根烟再回来把,哈哈")
    print("# 抓取网址:https://www.bqg3.com/ ")
    print("#                                              以此怀念  2019.12.03 ")
    print("####################################################################\n")
    book_name = input('请输入要下载的小说名称:')
    new_dir(name='D:\DownBook')
    main(book_name)



############################## End 2019.12.03 ######################################

免费评分

参与人数 10吾爱币 +9 热心值 +10 收起 理由
lwx712176 + 1 谢谢@Thanks!
叶樱枫 + 1 + 1 谢谢@Thanks!
Mr铅笔 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zhaoziqi1995 + 1 + 1 谢谢@Thanks!
ma4907758 + 1 + 1 我很赞同!
snowfox99 + 1 + 1 谢谢@Thanks!确实能用,也让我这种菜鸟学习啦!
passengerlee + 1 + 1 谢谢@Thanks!
someoneZhan + 1 + 1 用心讨论,共获提升!
夜光 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sumyes + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 小心boss 发表于 2019-12-3 21:41
链接:https://pan.baidu.com/s/1up5bPflFttLaCvwdZbvOag
提取码:31ih

直接上个打包好的exe把,就不用Python运行环境了.
shaolongchao 发表于 2019-12-4 21:10
请教一下,https://www.bqg3.com/quanbuxiaoshuo/这个url不同的网站是怎么获取呢,想爬其他站点,但是找不到这个全部列表页面,请问怎找啊,谢谢
风雨信中故人来 发表于 2019-12-3 21:31
哈哈,多谢老哥,我自学py就是为了写这个,没想到还没写完,老哥就发出来了!
ds3700 发表于 2019-12-3 21:49
厉害啊厉害啊厉害啊厉害啊
evangelion100 发表于 2019-12-3 21:53
感谢楼主大神分享的教程
shanglan 发表于 2019-12-3 22:00
感谢老哥分享
leonwqhb 发表于 2019-12-3 22:00
什么地方的小说都能下载吗??
20020333 发表于 2019-12-3 22:00
噢噢,有的玩了
Tommy90 发表于 2019-12-3 22:01
Python还是有很多玩头的,就是一直没时间学习
OR120 发表于 2019-12-3 22:01
谢谢,支持一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表