小说爬虫

原文引用https://www.dazhuanlan.com/2019/08/26/5d62f6fd2023a/

下面是进程代码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

import  requestsimport threadingfrom bs4 import BeautifulSoupimport reimport osimport timeimport sysimport threading

req_header={‘Accept‘:‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8‘,‘Accept-Encoding‘:‘gzip, deflate, br‘,‘Accept-Language‘:‘zh-CN,zh;q=0.9‘,‘Cookie‘:‘UM_distinctid=162afbabff819e-03f2f082776e95-b34356b-1fa400-162afbabff9294; CNZZDATA1259019190=1993576859-1523364262-https%253A%252F%252Fwww.baidu.com%252F%7C1523364262; bookid=124629; chapterid=6510968; chaptername=%25u7B2C1%25u7AE0%2520%25u6797%25u4E2D%25u9634%25u8C0B‘,‘Host‘:‘www.uxiaoshuo.com‘,‘Proxy-Connection‘:‘keep-alive‘,‘Referer‘:‘https://www.uxiaoshuo.com/‘,‘Upgrade-Insecure-Requests‘:‘1‘,‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36‘}

req_url_base=‘http://www.uxiaoshuo.com‘                

def (txt_id):    txt={}    _req_url=[]    txt[‘title‘]=‘‘    txt[‘id‘]=str(txt_id)                                   #小说编号    _req_url=txt[‘id‘].split(‘.‘)    req_url=req_url_base+ txt[‘id‘]                         #根据小说编号获取小说URL    print("小说编号:"+req_url)    try:        res=requests.get(req_url, params=req_header)             #获取小说第一章接口        soups=BeautifulSoup(res.text,"html.parser")             #soup转化        #获取小说题目        txt[‘title‘]=soups.select(‘#webhtml .box_con .con_top a‘)[1].text        #打开小说文档写入小说相关信息        fo = open(‘{0}.txt‘.format(txt[‘title‘]), "ab+")        #循环写入章节内容        while 1:            if _req_url[-1]!=‘html‘:                print(txt[‘title‘]+"全部下载成功!")                break            txt[‘c_title‘]=soups.select(‘#webhtml .box_con .zhangjieming h1‘)[0].text     ##章节名称            txt[‘content‘]=soups.select(‘#webhtml .box_con .zhangjieTXT‘)[0]            for i in txt[‘content‘].select("script"):           #去除无用内容                i.decompose()            for i in txt[‘content‘].select("div"):                i.decompose()            txt[‘content‘]=re.sub( ‘s+‘, ‘rnt‘, txt[‘content‘].text).strip(‘rn‘)            #以二进制写入章节题目            fo.write((‘n‘+txt[‘c_title‘]+‘rn‘).encode(‘UTF-8‘))            #以二进制写入章节内容            fo.write((‘n‘+txt[‘content‘]+‘n‘).encode(‘UTF-8‘))            print(txt[‘c_title‘])            # print(‘章节名:‘+txt[‘c_title‘])            # print("章节内容:n"+txt[‘content‘])            req_url=soups.select(‘#webhtml .zhangjieming .bottem1 a‘)[3][‘href‘]            _req_url=req_url.split(‘.‘)            req_url=req_url_base+req_url            res=requests.get(req_url, params=req_header)             #获取下一章接口            soups=BeautifulSoup(res.text,"html.parser")             #soup转化    except Exception as e:        print(e)    finally:        return

get_txt(‘/124/124629/7404934.html‘)get_txt(‘/135/135169/7373986.html‘)

原文地址:https://www.cnblogs.com/petewell/p/11410423.html

时间: 2024-10-07 11:35:11

小说爬虫的相关文章

使用scrapy制作的小说爬虫

爬虫配套的django网站  https://www.zybuluo.com/xuemy268/note/63660 首先是安装scrapy,在Windows下的安装比较麻烦,大家好好百度下,这里就不细说了,在ubuntu下的安装 apt-get install python-dev apt-get install python-lxml apt-get install libffi-dev pip install scrapy 爬取小说的话无非就是爬取两个页面,小说介绍页和小说章节页,然后又分

C#最基本的小说爬虫

新手学习C#,自己折腾弄了个简单的小说爬虫,实现了把小说内容爬下来写入txt,还只能爬指定网站. 第一次搞爬虫,涉及到了网络协议,正则表达式,弄得手忙脚乱跑起来效率还差劲,慢慢改吧. 爬的目标:http://www.166xs.com/xiaoshuo/83/83557/ 一.先写HttpWebRequest把网站扒下来 这里有几个坑,大概说下: 第一个就是记得弄个代理IP爬网站,第一次忘了弄代理然后ip就被封了..... 第二个就是要判断网页是否压缩,第一次没弄结果各种转码gbk utf都是乱

【nodejs爬虫】使用async控制并发写一个小说爬虫

最近在做一个书城项目,数据用爬虫爬取,百度了一下找到这个网站,以择天记这本小说为例. 爬虫用到了几个模块,cheerio,superagent,async. superagent是一个http请求模块,详情可参考链接. cheerio是一个有着jQuery类似语法的文档解析模块,你可以简单理解为nodejs中的jQuery. async是一个异步流程控制模块,在这里我们主要用到async的mapLimit(coll, limit, iteratee, callback) async.mapLim

Nodejs——简单小说爬虫实现

1 //引入模块 2 const http = require('http') 3 const fs = require('fs') 4 const cheerio = require('cheerio') 5 const iconv = require('iconv-lite') 6 //第一章url 7 const url = 'http://www.81zw.com/book/8634/745331.html' 8 //开始章节数 9 let i = 1 10 //最大获取章节数 11 l

python爬虫之小说网站--下载小说(正则表达式)

思路: 1.找到要下载的小说首页,打开网页源代码进行分析(例:https://www.kanunu8.com/files/old/2011/2447.html) 2.分析自己要得到的内容,首先分析url,发现只有后面的是变化的,先获得小说的没有相对路径,然后组合成新的url(每章小说的url) 3.获得每章小说的内容,进行美化处理 代码如下: #小说爬虫 import requests import re url='https://www.kanunu8.com/book4/10509/' #因

python第三方模块精选

python不但有着强大丰富的"内置电池",同样的,第三方模块也是非常的多.目前收集了requests.paramiko.pymsql,以后会陆续添加: 一.requests Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. 利用urllib发送GET请求: 1 2 3 4 5 import urllib.request f = urllib.

2015暑假记录

暑假记录 date work 2015/7/13-2015/7/14 win下安装scrapy 安装流程: 重新安装python2.7 安装pip,easy_install 使用pip安装lxml,pyOpenSSL,Zope.Interface,twisted,pywin32 注意所有的系统版本都需要对上,否则在twisted的deferred会出现错误 2015/7/15 简易版python小说爬虫

.NET4.5 WFP中用WebBrowser获取/操作网页html代码

引言 想给自己之前写的网页小说爬虫程序更新换代,之前一直是用winform的形式写的程序,因此这一次更新打算把UI换成WPF(因为听说WPF很漂亮),顺便也以此引入WPF的学习. 那么作为网页爬虫程序,最重要的就是html源码的获取了,通常的获取方式有几种:HttpWebRequest.WebRequest.WebClient.WebBrowser等.由于我这里写的爬虫软件针对的网站需要先登录才能看到小说内容,而我一次爬取的内容不多都是短篇小说,因此不需要考虑到爬取的速度,因此自然是打算使用We

Python 爬虫-抓取小说《鬼吹灯之精绝古城》

想看小说<鬼吹灯之精绝古城>,可是网页版的好多广告,还要一页一页的翻,还无法复制,于是写了个小爬虫,保存到word里慢慢看. 代码如下: """ 爬取<鬼吹灯之精绝古城>小说 """ from selenium import webdriver import os from docx import Document class DownloadFiles(): def __init__(self): self.baseUr