【爬虫】小说筛选爬取模板
适用于某分区内的所有小说(两级网站),并简单地根据关键字赋权值筛选
import requests
import re
from bs4 import BeautifulSoup# 爬取网站
def getHTMLText(url):try:#print("获取url中...")r=requests.get(url,timeout=30)r.raise_for_status()r.encoding=r.apparent_encoding#print("获取url完成")return r.textexcept:print("获取Url失败")# 一级网站源码解析
def parsePage1(text1):url1 = re.findall(r'', text1) # 本页分区所有小说的粗url列表url1List = []for n in url1:n = n.split('"')[1]url1List.append(n)return url1List # 本页分区所有小说的url列表# 具体文章爬取并筛选
def parsePage2(url1List):urlList = []for n in url1List:urlList.append("") # url预处理nameNum = len(urlList)count = 1for url2 in urlList:judge1 = 0print("\t第{}/{}个".format(count, nameNum))count += 1text2 = getHTMLText(url2) # 获取小说htmlpageN = pageNum(text2) # 获取小说页数name = re.findall() # 获取小说名称remove = [] # 去除不需要的小说名称for n in remove:if n in name:judge1 = 1if judge1 == 1:continueprint("\t\t{}".format(name))print("\t\t第1/{}页".format(pageN))text = content(text2) # 文字获取if pageN > 1:# 处理其他页的urlurl = url2sl = url.split(".")sp = ""for i in sl[:-2]:sp += i + "."for n in range(2, min(pageN+1, 15)):print("\t\t第{}/{}页".format(n, pageN))url2 = sp + sl[-2] + "_" + str(n) + "." + sl[-1]text2 = getHTMLText(url2)text += content(text2)# 筛选函数if judge(text):write(name)# 写入函数
def write(name):f = open('1.txt', 'a', encoding='utf-8')w = name + "\n"f.write(w)f.close()# 文字获取函数
def content(text2):text = text2soup = BeautifulSoup(text, "html.parser")text = soup.select('')[0]content = ""for string in text.stripped_strings:content += stringreturn content# 页数获取函数
def pageNum(text2):try:pageN = int(re.findall(r'', text2)return pageNexcept:return 1# 筛选函数
def judge(text):search1 = [] # 特别喜欢的关键词search2 = [] # 一般喜欢的关键词search3 = [] # 拒绝的关键词length = len(search1) + len(search2)count = 0for str in search1:if str in text:count += 4for str in search2:if str in text:count += 1for str in search3:if str in text:count -= 10rate = count / lengthprint("\t\t\trate: {}".format(rate))# 筛选标准if rate >= 1:return Trueelse:return Falsedef main():url1 = "" # 分区网址text1 = getHTMLText(url1)indexPageNum = int(re.findall(r'', text1) # 分区总页数url1List = parsePage1(text1) # 获得分区下所有小说的网址parsePage2(url1List) # 具体文章爬取并筛选for indexN in range(1, indexPageNum+1):print("第{}/{}页".format(indexN, indexPageNum))url1 = "" + str(indexN) + ".html"text1 = getHTMLText(url1)url1List = parsePage1(text1)parsePage2(url1List)main()
【爬虫】小说筛选爬取模板相关推荐
- python3.6爬虫案例:爬取顶点小说(爱看小说同学的福利)
一.写在前面 这次本来打算爬百思不得姐视频的,谁料赶上此网站调整,视频专栏下线了,网站中也没有视频可爬.所幸先来说说如何爬取顶点小说吧. 顶点小说(https://www.x23us.com)里面的内 ...
- Python爬虫练习笔记——爬取一本小说并保存为txt文件
最近竟然开始磕起了黄晓明和尹正的CP!!! 但是万恶的爱某艺不好好更新剧集,居然搞起了超前点映- WTF???有什么是我这个贫穷而又尊贵的VIP用户不能看的吗??? 于是我决定开始看小说了!找个网站把 ...
- 还在苦于Kindle的epub格式吗?python爬虫,一键爬取小说加txt转换epub。
还在苦于Kindle的epub格式吗?python爬虫,一键爬取小说加txt转换epub. 项目地址: https://github.com/Fruiticecake/dubuNovel/blob/m ...
- monthy python爬虫_Python爬虫DOTA排行榜爬取实例(分享)
Python爬虫DOTA排行榜爬取实例(分享) 1.分析网站 打开开发者工具,我们观察到排行榜的数据并没有在doc里 doc文档 在Javascript里我么可以看到下面代码: ajax的post方法 ...
- python爬取小说写入txt_对新笔趣阁小说进行爬取,保存和下载!这就是Python的魅力...
原标题:对新笔趣阁小说进行爬取,保存和下载!这就是Python的魅力 以前挺爱在笔趣阁看小说的(老白嫖怪了) 现在学了一点爬虫技术,就自然而然的想到了爬取笔趣阁的小说 也算锻炼一下自己的技术,就以新笔 ...
- python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现
这篇文章我们来讲一下在网站建设中,Python爬虫进阶之爬取某视频并下载的实现.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 这几天在家闲得无聊,意外的挖掘到了一个资源网站 ...
- 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)
[Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...
- [day4]python网络爬虫实战:爬取美女写真图片(Scrapy版)
l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.Scrapy简介 4. ...
- python3.6爬虫案例:爬取朝秀帮图片
一.写在前面 之前写的两篇博客: python3.6爬虫案例:爬取百度歌单点击打开链接: python3.6爬虫案例:爬取顶点小说(爱看小说同学的福利)点击打开链接 第一个案例写了如何在百度音乐歌单中 ...
最新文章
- java常见面试题总结
- Udacity并行计算课程笔记-The GPU Hardware and Parallel Communication Patterns
- boost::geometry::convert用法的测试程序
- VistaDB 数据库,.NET的新选择
- VxWorks系统BSP配置文件及生成下载
- wxpython控件绑定事件_wxPython事件处理
- 内核并发控制---原子操作(来自网易)
- 缓存 ASP.NET 页
- 一生只有一个配偶的动物,如果一方死亡了,另一方会怎么办?
- android alertdialog view,Android AlertDialog 方法setView(view,0,0,0,0)开发自定义对话框
- ACL in 和 out
- MCSA / Windows Server 2016 服务器的远程管理
- 中国历史上十大无名英雄
- 教你批量采集晨光文具的商品图片到电脑中
- 三创赛优秀作品_三创赛优秀作品.doc
- vue项目引入typescript(vue与ts混用)
- 【ITPM】TW1:ISchool 项目前期分析说明书
- linux服务器后台运行Python程序
- 第二课 IDEA 的使用
- 一起学WEB HTML5 第1讲