采集笔趣阁小说,使用以下几个核心包:

requests:2.10.0

beautifulsoup4:4.7.1

其中:

1、BaseFrame.__log__("开始采集中国船舶网的数据...") BaseFrame.__log__() 就是我个人封装的日之类替换成print就可以。

2、response = requests.get(self.base_url, timeout=30, headers=UserAgent().get_random_header(self.base_url)) 这个就是封装的一个随机header,防止被认为是机器,每次都模拟一个新的浏览器的header。代码是这个:UserAgent().get_random_header(self.base_url) 随机header类:https://blog.csdn.net/zy0412326/article/details/104258491

3、filepath = BaseConfig().CORPUS_ROOT + os.sep + "equipment_info.xlsx" 这个就是文件的路径BaseConfig().CORPUS_ROOT替换成自己的文件路径就可以了。

4、mmEntity = SpriderEntity() 这个就是一个实体类用来记录采集过的数据,程序可以多次执行。防止数据重复采集的策略。

这里我之前写过防止重复采集的文章:https://blog.csdn.net/zy0412326/article/details/103224399

不废话了直接上代码:

import os
import requests
from bs4 import BeautifulSoup
from access.sprider.SpriderAccess import SpriderAccess
from base.BaseConfig import BaseConfig
from base.BaseFrame import BaseFrame
from business.sprider.UserAgent import UserAgent
from object.entity.SpriderEntity import SpriderEntity
from plugin.Tools import Toolsclass QuLa:base_url = "https://www.qu.la/"save_path = BaseConfig().CORPUS_ROOT + os.sep + "QuLa"def __init__(self):Tools.judge_diskpath_exits_create(self.save_path)passdef sprider_story(self):BaseFrame.__log__("开始采集笔趣阁排行榜小说...")self.story_url = self.base_url + "paihangbang"try:response = requests.get(self.story_url, timeout=30, headers=UserAgent().get_random_header(self.story_url))response.encoding = 'UTF-8'soup = BeautifulSoup(response.text, "html5lib")except Exception as e:BaseFrame.__err__("采集出现错误" + str(e))passdiv_list = soup.findAll('div', attrs={"class": 'topbooks'})for div in div_list:a_list = div.find_all('a', attrs={"target": '_blank'})for a in a_list:content_url = self.base_url + a.get("href")txt_title = a.get("title")try:response = requests.get(content_url, timeout=30, headers=UserAgent().get_random_header(content_url))response.encoding = 'UTF-8'soup = BeautifulSoup(response.text, "html5lib")dl_tag = soup.find('dl')a_list = dl_tag.find_all('a')for a_tag in a_list:href = a_tag.get("href")if "book" in href:url = self.base_url + hrefchapter = a_tag.textmmEntity = SpriderEntity()mmEntity.sprider_base_url = self.base_urlmmEntity.create_datetime = Tools.get_current_datetime()mmEntity.sprider_url = urlmmEntity.sprider_pic_title = chaptermmEntity.sprider_pic_index = str(1)if SpriderAccess().query_sprider_entity_by_urlandtitle(url, chapter) is None:SpriderAccess().save_sprider(mmEntity)self.get_content(url, chapter, txt_title)except Exception as e:BaseFrame.__err__("采集" + content_url + "出现错误" + str(e))passpassdef get_content(self, url, chapter, title):"""写文件至文本中:param url:采集的URL:param chapter: 章节名称:param title: 小说名称:return:"""try:BaseFrame.__log__("正在采集" + url + "上的小说...")response = requests.get(url, timeout=60, headers=UserAgent().get_random_header(url))response.encoding = 'UTF-8'soup = BeautifulSoup(response.text, "html5lib")content = soup.find('div', attrs={"id": 'content'})content = chapter + "\n" + str(content). \replace('<br/>', '\n'). \replace("<script>chaptererror();</script>", ""). \replace("<div id=\"content\">", ""). \replace("</div>", "")txt_path = self.save_path + os.sep + str(title) + ".txt"Tools.write_string_to_txt(txt_path, content)except Exception as e:BaseFrame.__err__("采集" + chapter + "出现错误" + str(e) + "尝试重新采集.")self.get_content(url, chapter, title)passif __name__ == '__main__':QuLa().sprider_story()
pass

toolkit-frame之toolkit-sprider(数据采集)---笔趣阁小说相关推荐

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

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

  2. python爬取笔趣阁小说(附源码)

    python爬取笔趣阁小说 文章目录 python爬取笔趣阁小说 前言 一.获取小说目录结构 获取目录连接 请求代码 解析目录 XPath tqdm 解析 二.获取小说章节结构 请求代码 解析章节 代 ...

  3. 爬取笔趣阁小说网站上的所有小说(二)

    爬取笔趣阁小说网站上的所有小说(二) 网址为:https://www.biqukan.cc/topallvisit/1.html 我们已经拿到了所有小说的地址爬取笔趣阁小说网站上的所有小说(一),现在 ...

  4. python3+正则(re)增量爬虫爬取笔趣阁小说( 斗罗大陆IV终极斗罗)

    python3+re 爬虫爬取笔趣阁小说 斗罗大陆IV终极斗罗 爬取前准备 导入的模块 分析 正则的贪婪与非贪婪 附完整代码示例 爬取前准备 导入的模块 import redis #redis数据库 ...

  5. 爬虫练习-爬取笔趣阁小说

    练习一下爬虫,将笔趣阁的小说根据需求目标再爬取下来,本文仅仅学习爬虫技术,大家还是要支持一下正版网站的 思路: Created with Raphaël 2.2.0开始输入书名查询小说是否存在跳转页面 ...

  6. python爬取小说爬取_用python爬取笔趣阁小说

    原标题:用python爬取笔趣阁小说 首先打开笔趣阁网址,链接,搜索自己想要的小说. 在网站内单击右键,点击检查,会出现如下界面! 我们需要的章节信息就在我划的这块, 可以将每个标签点一下,它对应的内 ...

  7. java爬虫爬取笔趣阁小说

    java爬虫爬取笔趣阁小说 package novelCrawler;import org.jsoup.Connection; import org.jsoup.HttpStatusException ...

  8. Python爬虫--笔趣阁小说爬取

    Python爬虫–笔趣阁小说爬取 爬虫用到的插件 import requests from lxml import etree 小说目录页 以小说"我有百万技能点"为例,在笔趣阁搜 ...

  9. Python爬虫之爬取笔趣阁小说下载到本地文件并且存储到数据库

    学习了python之后,接触到了爬虫,加上我又喜欢看小说,所以就做了一个爬虫的小程序,爬取笔趣阁小说. 程序中一共引入了以下几个库: import requests import mysql.conn ...

最新文章

  1. 将表里的数据批量生成INSERT语句的存储过程 增强版
  2. Python 求最大子集的递归实现
  3. 论文笔记之:RATM: RECURRENT ATTENTIVE TRACKING MODEL
  4. mysql linux_linux下mysql下载安装
  5. 状压[Jxoi2012]奇怪的道路
  6. python matplotlib相关 dateutil
  7. mysql acid介绍_InnoDB ACID模型介绍
  8. Kubernetes(K8s) 1.14.3常用操作命令
  9. 玉龙雪山还会存在多久
  10. sqlserver express版PRIMARY 大小不能超过4G
  11. java游戏编程源代码_JAVA小游戏编程-源代码
  12. android论文前言,安卓论文大纲格式范文 安卓论文提纲怎么写
  13. stm32f207/stm32f407擦除内部flash讲解
  14. 博世 BMI160 6轴传感器 数据手册datasheet
  15. JAVA_OPTS参数说明与配置
  16. vue鼠标划过移入移出触发方法
  17. neo4j安装及内存分配
  18. 【3】少儿Python编程学习_从哪开始学习
  19. os 通过pptt table得到cache信息
  20. mysql使用什么语句为指定_在MySQL中,可以使用_____语句来为指定数据库添加用户。...

热门文章

  1. Snagit for Mac 如何截取长图,滚动截图?
  2. WebInspect评估版试用第2天和第3天
  3. tp5的ajax搜索后分页,修改TP5的分页类使之Ajax分页有效
  4. BP神经网络入门 学习笔记
  5. Linux安装Redis并且修改端口号,redis-6.2.2
  6. phpstudy下载安装简明教程+软件下载(图文)
  7. 大数据技术之Ranger
  8. 建立自定义的YouTube播放列表播放器
  9. 权限 授权之 - License
  10. moment/dayjs常用操作,下一年,下一天