搜索进行爬取你自己喜欢的小说

我是一个小说爱好者,喜欢看小说,这也是我学习爬虫其中的一个原因。
我喜欢看网络小说,经常需要从网上下载小说。有的还不好找,有的下载不了,如果是正在更新的小说来说,就很难下载到txt或者其他格式的小说。我就是不想花太多时间找冷门小说的下载资源,因此稍微学习了python的爬虫知识。
      废话不多说,直接开始。。。。。。。。。。。。。。。

需要安装的库requests,lxml

这次爬去的是笔趣阁的资源
大概分这几步;
1:输入想爬取的小说
2:获取网页源代码
3:进行对比小说资源
4:获取每章的url
5:获取每章的内容
6:数据清洗后,循环下载保存文件中

1:输入想爬取的小说

这里也可以利用浏览器进行搜索,由于没有拼接使用,所以直接利用拼接url来进行实现。

// An highlighted blockdef loginzhihu():                             # url进行拼接url = 'https://www.xxbiquge.com/'"""利用浏览器搜索"""# try:#     brower = webdriver.Firefox()  # 初始化一个火狐浏览器实例:driver#     # dr=webdriver.Chrome()     调用谷歌浏览器#     brower.implicitly_wait(8)  # 设置隐式等待时间#     brower.maximize_window()  # 最大化浏览器#     brower.get(url)  # 通过get()方法,打开一个url站点##     brower.find_element_by_xpath('//*[@id="keyword"]').send_keys(str(p))  # 搜索框输入胡歌#     brower.find_element_by_xpath('//*[@id="wrapper"]/div[2]/div[2]/span/input').click()  # 点击百度一下按钮##     time.sleep(2)  # 等待2秒#     sousuoye = brower.current_url#     print("搜索页网址:" +  sousuoye)#     brower.quit() #退出浏览器#     sousuo(sousuoye)### except ElementNotVisibleException as e: #进行错误提示#     print(e)"""利用url进行拼接"""p = input("请输入下载的小说:")Baseurl  =  url + "search.php?keyword=" + str(p)sousuo(Baseurl,p)

2:获取网页源代码

进行封装到一块,对每个网站进行获取网页源代码

def request_url(url):                           # 对每个网站的网页进行解析显示原网页s = requests.Session()html = s.get(url)html.encoding = 'utf-8'return html.text

3:进行对比小说资源

进入结果页后,由于搜索后有许多小说,所以要进行比对,,看哪一个是自己寻找的小说,如果比对成功,则直接下一步,进行下载,不然就结束本次程序。

def sousuo(url,p):                          # 按照小说的名字进行搜索小说html  = request_url(url)htm = etree.HTML(html)url_sousuoye = htm.xpath("//div[3]/div[1]/div[2]/h3/a/@href")[0]print("搜索的小说网址:" + url_sousuoye)# fiction_name = htm.xpath("/html/body/div[3]/div/div[2]/h3/a/span/text()")[0]   # 获取小说名进行对比fiction_list = htm.xpath("/html/body/div[3]/div[.]/div[2]/h3/a/span/text()")            # 获取搜索后小说的列表for i in fiction_list:                                                   # 进行循环寻找小说,如果是自己寻找的小说,就进行下一步,否则结束本次程序;if(str(p) == str(i)):xiazai(url_sousuoye)else:print("没找到匹配的小说。。。。。。")break;#    xiazai(url_sousuoye)

4:获取每章的url

直接用xpath进行提取

    html = request_url(url)# 获取章节# caption_title_1 = re.findall(r'<a href="(/2_2634/.*?\.html)">.*?</a>', html.text)htm = etree.HTML(html)caption_title_1 = htm.xpath('//*[@id="list"]/dl/dd[.]/a/@href'

5:获取每章的内容

获取每一张的内容,循环进行提取小说

# 循环下载每一张for i in caption_title_1:caption_title_1 = 'https://www.xxbiquge.com' + i# 网页源代码r1 = request_url(caption_title_1)# 获取章节名name = re.findall(r'<meta name="keywords" content="(.*?)" />', r1)[0]print(name)

6:数据清洗后,循环下载保存文件中

进行循环下载每一张,然后再进行数据清洗,去掉一些没用的符号,然后再存储,一TXT的形式存储

 # 存入TXT文件中path = r'C:\\Users\\Administrator\\Desktop\\python爬虫\\小说\\' + fiction_name_1file_name = open(path, 'a', encoding='utf-8')# 循环下载每一张for i in caption_title_1:caption_title_1 = 'https://www.xxbiquge.com' + i# 网页源代码r1 = request_url(caption_title_1)# 获取章节名name = re.findall(r'<meta name="keywords" content="(.*?)" />', r1)[0]print(name)file_name.write(name)file_name.write('\n')# 获取章节内容chapters = re.findall(r'<div id="content">(.*?)</div>', r1, re.S)[0]chapters = chapters.replace(' ', '')chapters = chapters.replace('readx();', '')chapters = chapters.replace('& lt;!--go - - & gt;', '')chapters = chapters.replace('&lt;!--go--&gt;', '')chapters = chapters.replace('()', '')# 转换字符串s = str(chapters)s_replace = s.replace('<br/>', "\n")while True:index_begin = s_replace.find("<")index_end = s_replace.find(">", index_begin + 1)if index_begin == -1:breaks_replace = s_replace.replace(s_replace[index_begin:index_end + 1], "")pattern = re.compile(r'&nbsp;', re.I)fiction = pattern.sub(' ', s_replace)file_name.write(fiction)file_name.write('\n')file_name.close()

最后把代码贴上

import re
# import time
import requests
from lxml import etree
# from selenium.common.exceptions import ElementNotVisibleException
# from selenium import webdriver  # 导入webdriver包def request_url(url):                           # 对每个网站的网页进行解析显示原网页s = requests.Session()html = s.get(url)html.encoding = 'utf-8'return html.text
# def huoqu_name(url):                           # 获取小说的名字并进行对比
#
#     html = request_url(url)
#     htm = etree.HTML(html)
#     fiction_name = htm.xpath("/html/body/div[3]/div/div[2]/h3/a/span/text()")[0]   # 获取小说名进行对比
#
#     fiction_list = htm.xpath("/html/body/div[3]/div[.]/div[2]/h3/a/span/text()")
#     for i in fiction_list:
#         if(str(fiction_name) == str(i)):def loginzhihu():                             # url进行拼接url = 'https://www.xxbiquge.com/'"""利用浏览器搜索"""# try:#     brower = webdriver.Firefox()  # 初始化一个火狐浏览器实例:driver#     # dr=webdriver.Chrome()     调用谷歌浏览器#     brower.implicitly_wait(8)  # 设置隐式等待时间#     brower.maximize_window()  # 最大化浏览器#     brower.get(url)  # 通过get()方法,打开一个url站点##     brower.find_element_by_xpath('//*[@id="keyword"]').send_keys(str(p))  # 搜索框输入胡歌#     brower.find_element_by_xpath('//*[@id="wrapper"]/div[2]/div[2]/span/input').click()  # 点击百度一下按钮##     time.sleep(2)  # 等待2秒#     sousuoye = brower.current_url#     print("搜索页网址:" +  sousuoye)#     brower.quit() #退出浏览器#     sousuo(sousuoye)### except ElementNotVisibleException as e: #进行错误提示#     print(e)"""利用url进行拼接"""p = input("请输入下载的小说:")Baseurl  =  url + "search.php?keyword=" + str(p)sousuo(Baseurl,p)
#    huoqu_name(Baseurl)def sousuo(url,p):                          # 按照小说的名字进行搜索小说html  = request_url(url)htm = etree.HTML(html)url_sousuoye = htm.xpath("//div[3]/div[1]/div[2]/h3/a/@href")[0]print("搜索的小说网址:" + url_sousuoye)# fiction_name = htm.xpath("/html/body/div[3]/div/div[2]/h3/a/span/text()")[0]   # 获取小说名进行对比fiction_list = htm.xpath("/html/body/div[3]/div[.]/div[2]/h3/a/span/text()")            # 获取搜索后小说的列表for i in fiction_list:                                                   # 进行循环寻找小说,如果是自己寻找的小说,就进行下一步,否则结束本次程序;if(str(p) == str(i)):xiazai(url_sousuoye)else:print("没找到匹配的小说。。。。。。")break;#    xiazai(url_sousuoye)
def xiazai(url):                       # 下载每章的内容html = request_url(url)# 获取章节# caption_title_1 = re.findall(r'<a href="(/2_2634/.*?\.html)">.*?</a>', html.text)htm = etree.HTML(html)caption_title_1 = htm.xpath('//*[@id="list"]/dl/dd[.]/a/@href')# 获取小说的名字fiction_name_0 = htm.xpath('//*[@id="info"]/h1/text()')[0]fiction_name_1 = str(fiction_name_0) + '.txt'# 存入TXT文件中path = r'C:\\Users\\Administrator\\Desktop\\python爬虫\\小说\\' + fiction_name_1file_name = open(path, 'a', encoding='utf-8')# 循环下载每一张for i in caption_title_1:caption_title_1 = 'https://www.xxbiquge.com' + i# 网页源代码r1 = request_url(caption_title_1)# 获取章节名name = re.findall(r'<meta name="keywords" content="(.*?)" />', r1)[0]print(name)file_name.write(name)file_name.write('\n')# 获取章节内容chapters = re.findall(r'<div id="content">(.*?)</div>', r1, re.S)[0]chapters = chapters.replace(' ', '')chapters = chapters.replace('readx();', '')chapters = chapters.replace('& lt;!--go - - & gt;', '')chapters = chapters.replace('&lt;!--go--&gt;', '')chapters = chapters.replace('()', '')# 转换字符串s = str(chapters)s_replace = s.replace('<br/>', "\n")while True:index_begin = s_replace.find("<")index_end = s_replace.find(">", index_begin + 1)if index_begin == -1:breaks_replace = s_replace.replace(s_replace[index_begin:index_end + 1], "")pattern = re.compile(r'&nbsp;', re.I)fiction = pattern.sub(' ', s_replace)file_name.write(fiction)file_name.write('\n')file_name.close()if __name__ == '__main__':loginzhihu()                  # 进行调用小说方法进行爬取


这就结束了,,,在里面也可以设置爬取每章的时间控制 time ,这次没写,可以自己添上,希望对大家有帮助。

爬取笔趣阁小说,并可以搜索爬取你喜欢的小说相关推荐

  1. python爬取小说写入txt_Python BeautifulSoup 爬取笔趣阁所有的小说

    这是一个练习作品.用python脚本爬取笔趣阁上面的免费小说. 环境:python3 类库:BeautifulSoup 数据源:http://www.biqukan.cc 原理就是伪装正常http请求 ...

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

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

  3. 2021年scrapy一分钟内爬取笔趣阁整本小说存为txt|解决章节排序问题

    本人是一个小说迷,喜欢用电纸书看小说,但苦于难以寻找网络小说的txt版本,加之最近学习了一下怎么用scrapy爬取网页数据,所以想到去使用scrapy框架来爬取笔趣阁小说存为txt文件,在爬取过程中对 ...

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

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

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

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

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

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

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

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

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

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

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

    爬取笔趣阁小说网站上的所有小说(一) 网址为:https://www.biqukan.cc/topallvisit/1.html 反反爬虫 爬虫首先要做的就是看看目标网址有没有反爬虫手段,一般网站都是 ...

  10. python爬取最新说章节_练习_Python3 爬取笔趣阁最新小说章节

    警告:本文代码仅供学习,禁止违法使用或商用. 这里拿人气小说<黎明之剑>来举个栗子,喜欢小说<黎明之剑>的朋友们请支持正版阅读. 笔趣阁网站上的其他书籍基本上的都可以套用,其他 ...

最新文章

  1. buildroot管理uboot+kernel+rootfs
  2. 计算机教研活动心得体会,信息技术研修教研活动总结
  3. PAT (Advanced Level) 1007 Maximum Subsequence Sum(最大连续子段和)
  4. 确认要从桌面删除计算机,确定要从界面上删除 我的电脑 ...
  5. openssh常用命令记录
  6. Inf and NaN cannot be JSON encoded
  7. 基于体素的全局光照技术
  8. java舆情分析_基于Java实现网络舆情分析系统的研究与实现
  9. 深度好文 | 超全SLAM技术及应用介绍
  10. 缝隙天线简介[搬运]
  11. Android程序设计基础 • 【目录】
  12. 基础工具类Joiner的使用
  13. 【牛客刷题】上手用C语言写一个三子棋小游戏超详解哦(电脑优化)
  14. 四、转换成BCNF的保持无损连接的分解
  15. 根据结构体数组中某一数据项对结构体数组排序
  16. MFC中添加GIF图片
  17. Python做数据处理(二):贷款风险预测
  18. 四十六、基础框架(四)字符串物件
  19. java edt,java并发之EDT测试
  20. 智慧发电厂+智能发电厂web端平台管理系统+Axure高保真智慧电厂系统+能耗管理+告警管理+生产监控+安防设备管理+运维设备管理+监控面板+系统管理+智慧电厂+电厂系统+智慧电厂管理平台+rp原型

热门文章

  1. 【编译原理】-- 第一章(翻译程序、编译程序、汇编程序、解释程序、编译过程概述)
  2. SAP 采购发票校验之 后续贷记 MIRO <转载>
  3. 西南大学校园网客户端共享网络之路由器开wifi
  4. 有没有更好的RFID固定资产管理系统?有RFID资产管理解决方案-新导智能
  5. 树莓派4b+mcp2515实现CAN总线通讯和系统编程(一.配置树莓派CAN总线接口)
  6. 树莓派安装ubuntu18.04教程
  7. (史上最全)Abaqus和XFLOW流固耦合联合仿真
  8. 标准G726音频解码和与H264视频封装为avi
  9. c语言如何读取avi文件,avilib库的使用
  10. 6 仓储管理系统 门店端功能