适用于某分区内的所有小说(两级网站),并简单地根据关键字赋权值筛选

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()

【爬虫】小说筛选爬取模板相关推荐

  1. python3.6爬虫案例:爬取顶点小说(爱看小说同学的福利)

    一.写在前面 这次本来打算爬百思不得姐视频的,谁料赶上此网站调整,视频专栏下线了,网站中也没有视频可爬.所幸先来说说如何爬取顶点小说吧. 顶点小说(https://www.x23us.com)里面的内 ...

  2. Python爬虫练习笔记——爬取一本小说并保存为txt文件

    最近竟然开始磕起了黄晓明和尹正的CP!!! 但是万恶的爱某艺不好好更新剧集,居然搞起了超前点映- WTF???有什么是我这个贫穷而又尊贵的VIP用户不能看的吗??? 于是我决定开始看小说了!找个网站把 ...

  3. 还在苦于Kindle的epub格式吗?python爬虫,一键爬取小说加txt转换epub。

    还在苦于Kindle的epub格式吗?python爬虫,一键爬取小说加txt转换epub. 项目地址: https://github.com/Fruiticecake/dubuNovel/blob/m ...

  4. monthy python爬虫_Python爬虫DOTA排行榜爬取实例(分享)

    Python爬虫DOTA排行榜爬取实例(分享) 1.分析网站 打开开发者工具,我们观察到排行榜的数据并没有在doc里 doc文档 在Javascript里我么可以看到下面代码: ajax的post方法 ...

  5. python爬取小说写入txt_对新笔趣阁小说进行爬取,保存和下载!这就是Python的魅力...

    原标题:对新笔趣阁小说进行爬取,保存和下载!这就是Python的魅力 以前挺爱在笔趣阁看小说的(老白嫖怪了) 现在学了一点爬虫技术,就自然而然的想到了爬取笔趣阁的小说 也算锻炼一下自己的技术,就以新笔 ...

  6. python 爬视频下载_Python爬虫进阶之爬取某视频并下载的实现

    这篇文章我们来讲一下在网站建设中,Python爬虫进阶之爬取某视频并下载的实现.本文对大家进行网站开发设计工作或者学习都有一定帮助,下面让我们进入正文. 这几天在家闲得无聊,意外的挖掘到了一个资源网站 ...

  7. 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)

    [Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...

  8. [day4]python网络爬虫实战:爬取美女写真图片(Scrapy版)

    l> 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买.点击进入详情 文章目录 1.开发环境 2.第三方库 3.Scrapy简介 4. ...

  9. python3.6爬虫案例:爬取朝秀帮图片

    一.写在前面 之前写的两篇博客: python3.6爬虫案例:爬取百度歌单点击打开链接: python3.6爬虫案例:爬取顶点小说(爱看小说同学的福利)点击打开链接 第一个案例写了如何在百度音乐歌单中 ...

最新文章

  1. java常见面试题总结
  2. Udacity并行计算课程笔记-The GPU Hardware and Parallel Communication Patterns
  3. boost::geometry::convert用法的测试程序
  4. VistaDB 数据库,.NET的新选择
  5. VxWorks系统BSP配置文件及生成下载
  6. wxpython控件绑定事件_wxPython事件处理
  7. 内核并发控制---原子操作(来自网易)
  8. 缓存 ASP.NET 页
  9. 一生只有一个配偶的动物,如果一方死亡了,另一方会怎么办?
  10. android alertdialog view,Android AlertDialog 方法setView(view,0,0,0,0)开发自定义对话框
  11. ACL in 和 out
  12. MCSA / Windows Server 2016 服务器的远程管理
  13. 中国历史上十大无名英雄
  14. 教你批量采集晨光文具的商品图片到电脑中
  15. 三创赛优秀作品_三创赛优秀作品.doc
  16. vue项目引入typescript(vue与ts混用)
  17. 【ITPM】TW1:ISchool 项目前期分析说明书
  18. linux服务器后台运行Python程序
  19. 第二课 IDEA 的使用
  20. 一起学WEB HTML5 第1讲

热门文章

  1. 会讯易二维码读头(三)助力阿里云峰会活动流程
  2. 简述UIButton的属性和用法
  3. ADC的相关知识整理
  4. Vuex _ 核心插件
  5. 分区表尽量不要建主键
  6. remote app tool实现远程连接应用程序
  7. 身份证的那些事——再也不用查询软件了直接看懂身份证号
  8. 室内定位方案之化工厂访客定位监测系统,一种室内定位管理方案
  9. 图解物联网---物联网的架构
  10. 三未信安张岳公:深耕云加密 让云计算更安全