Python3 爬虫 requests+BeautifulSoup4(BS4) 爬取小说网站数据

news/2024/4/27 20:58:43/文章来源:https://blog.csdn.net/weixin_33912638/article/details/88691365

刚学Python爬虫不久,迫不及待的找了一个网站练手,新笔趣阁:一个小说网站。

前提准备

安装Python以及必要的模块(requests,bs4),不了解requests和bs4的同学可以去官网看个大概之后再回来看教程

爬虫思路

刚开始写爬虫的小白都有一个疑问,进行到什么时候爬虫还会结束呢?答案是:爬虫是在模拟真人在操作,所以当页面中的next链接不存在的时候,就是爬虫结束的时候。

1.用一个queue来存储需要爬虫的链接,每次都从queue中取出一个链接,如果queue为空,则程序结束
2.requests发出请求,bs4解析响应的页面,提取有用的信息,将next的链接存入queue
3.用os来写入txt文件

具体代码

需要把域名和爬取网站对应的ip 写入host文件中,这样可以跳过DNS解析,不这样的话,代码运行一段时间会卡住不动

'''
抓取新笔趣阁https://www.xbiquge6.com/单个小说
爬虫线路: requests - bs4 - txt
Python版本: 3.7
OS: windows 10
'''
import requests
import time
import sys
import os
import queue
from bs4 import BeautifulSoup 
# 用一个队列保存url
q = queue.Queue()
# 首先我们写好抓取网页的函数
def get_content(url):try:headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36',}r = requests.get(url=url, headers=headers)r.encoding = 'utf-8'content = r.textreturn contentexcept:s = sys.exc_info()print("Error '%s' happened on line %d" % (s[1], s[2].tb_lineno))return " ERROR "# 解析内容
def praseContent(content):soup = BeautifulSoup(content,'html.parser')chapter = soup.find(name='div',class_="bookname").h1.textcontent = soup.find(name='div',id="content").textsave(chapter, content)next1 = soup.find(name='div',class_="bottem1").find_all('a')[2].get('href')# 如果存在下一个章节的链接,则将链接加入队列if next1 != '/0_638/':q.put(base_url+next1)print(next1)
# 保存数据到txt
def save(chapter, content):filename = "修罗武神.txt"f =open(filename, "a+",encoding='utf-8')f.write("".join(chapter)+'\n')f.write("".join(content.split())+'\n') f.close# 主程序
def main():start_time = time.time()q.put(first_url)# 如果队列为空,则继续while not q.empty():content = get_content(q.get())praseContent(content)end_time = time.time()project_time = end_time - start_timeprint('程序用时', project_time)# 接口地址
base_url = 'https://www.xbiquge6.com'
first_url = 'https://www.xbiquge6.com/0_638/1124120.html'
if __name__ == '__main__':main()

总结

结果蛮成功的吧,就是过程比较慢,程序用时1个半小时。。23333继续学习,有改进方案的欢迎提出来,一起交流。
QQ:1156381157

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_766696.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【面试精选】关于大型网站系统架构你不得不懂的10个问题

该文已加入笔主的开源项目——JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目),地址:https://github.com/Snailclimb/JavaGuide 。觉得不错的话,记得点个Star。下面这些问题都是一线大厂的真实面试问题,不论是对你面试…

python语言网站_部署基于python语言的WEB发布环境

一、部署说明 1、python语言介绍 2、实验环境 实验机器:Vmware虚拟机 8核10G 网卡:桥接模式 系统:centos7.5 防火墙:关闭 Selinux:关闭 网段:192.168.10.0/25 WEB01:192.168.10.42 二、部署流程…

百度快照 xilinx fpga权威设计指南_快照在SEO优化中扮演什么角色?

Seo 优化会经常听到“快照”这个词,比如在交换链接时,你会听到快照的更新速度。快照在SEO优化中扮演着一个什么样的角色?大多数人都不知道。Snapshot 是搜索引擎存储在服务器中的备份网页,也是搜索引擎对网站的认知属性。在网站进…

python爬虫真假网址,python爬取福利网站图片完整代码,懂得人都懂

网址需要自己替换懂的人都懂512*2,主要学习简单的爬虫,别乱用,否则后果自负![Python] 纯文本查看 复制代码import requests,bs4,re,os,threadingclass MeiNvTu: def __init__(self): self.url_mainhttps://网址保密,不能乱发哈哈/pw/ self.urlf{self.url_main}thread.php?fid …

怎样把本地html传到网上,如何制作自己的网页链接?教你怎么把自己制作的网站发布到网上?...

如何制作自己的网页链接?教你怎么把自己制作的网站发布到网上?下面就来一起看看吧!确定网页架构。要确定我们要做的网页内容,必须确定一个框架形式。一般比较流行,大部分网页都是。①网站页眉网站导航栏内容版块。一般新浪的网页和部分浏览器都采用这种…

做10个网站用多大的服务器,【教你搭建服务器系列】(10)利用Docsify搭建个人笔记网站...

写文档的工具非常多,但是作为程序员,大部人还是偏爱Markdown的,有时需要写一份开发文档,以供自己或者他人查看,那如何把 Markdown 文件转换成文档呢?docsify 就可以做到了,docsify 可以直接加载…

更换php版本_PHP与SEO,应用curl及正则获取搜狗搜索相关关键词

PHP是世界上最好的语言,来吧,入坑吧,我们一起来拍(pai)黄(huang)片(pian),Sorry,手抖,打错字了,当然是学习简写的,php啦!PHP即“超文本预处理器”,是一种通用…

php开源代码推荐,非常好用的源代码网站推荐,用这些开源代码就够了

原标题:非常好用的源代码网站推荐,用这些开源代码就够了作为一个开发人员写代码是工作的日常,在这个万物互联的时代,有问题马上百度、谷歌、知乎一下等等,代码也不例外,借鉴别人的代码同样可以事半功倍。下…

服务器运行环境查看,如何查看linux环境变量_网站服务器运行维护

linux如何查看进程端口是多少_网站服务器运行维护linux查看进程端口的方法是:1、首先执行命令【ps -ef | grep 进程名】,查看进程pid;2、然后执行命令【netstat -nap | grep 进程pid】,通过pid查看进程端口。首先执行如下命令&…

div 隐藏_隐藏文本与隐藏链接对SEO的影响!

对于SEO行业而言,隐藏文本(HiddentText)是一个古老而又久远的话题,它早期主要用于提高页面对特定关键词的相关性,由于这部分内容对用户不可见,常常被算法识别为作弊行为。 但即便如此,仍有众多用户对其乐此不疲&#…

如何抓取一个网站的分页_如何让网站更符合搜索引擎的抓取规则 - 百度蜘蛛池博客...

原出处:蜘蛛池博客原文链接:如何让网站更符合搜索引擎的抓取规则? - 蜘蛛池博客如果一个网站能够经常被搜索引擎抓取,就表示搜索引擎对这个网站非常信任,从而赋予网站的权重也就非常高,关键词排名、网站流量…

php html5 cms,建站教程|CMS教程|PHP教程|html5教程 - 站长图库

2021-03-1147有时候项目中需要进行多个字段搜索就可以用到此方法在Laravel中的可以同时使用多个where,所以我们可以每个字段分配一个where()然后在每个where()中去闭包判断$username ;2021-03-1187下面给大家介绍thinkphp withCredentials 跨域问题解决思路,希望对…

登陆系统 怎么做_中小企业网站推广怎么做 - 神马快排系统

原出处:超级排名系统原文链接:www.chaojipaiming.com 中小企业网站推广怎么做? - 超级排名系统首先,我们应该要知道,推广网站并不是我们的最终目的,它只是工具和手段,企业做网站推广的唯一目的&…

动态网站的技术路线_世界能源技术展望2020—钢铁技术路线图(旗舰报告,强烈推荐,执行摘要翻译,文末含全文下载地址)...

国际能源署发布《世界能源技术展望2020—钢铁技术路线图》(旗舰报告,强烈推荐,执行摘要翻译,文末含全文下载地址)ERR能研微讯(左)丨ERR能研君(右)阅前须知1.网站或订阅号转载文章需隔天(发布时间24小时以后),且须明确注明作者与来…

动态网站的技术路线_动态IP与静态IP

IP是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。动态IP需要在连接网络时自动获取IP地址以供用户正常上网,而静态IP是网络服务提供商在装机时分配给用户的IP地址,可以直接连接上…

linux服务器无法识别u盘,linux无法识别U盘_网站服务器运行维护

win7只能上qq不能上网怎么解决_网站服务器运行维护win7只能上qq不能上网解决方法:1、在开始菜单中打开运行,然后运行cmd,输入netsh winsock reset命令,然后按提示重启电脑。2、把DNS设置为自动。1、插入u盘,执行如下命…

msdn itellyou_知名微软系统镜像网站itellyou迎来全新改版

相信许多热爱装机或者对于电脑系统有过一定研究装过系统的小伙伴们都知道,有一个大家都熟知的非常良心干净的微软系统镜像网站,那就是itellyou。Itellyou这个网站一直以来都致力于提供微软官方纯净原版系统,从Windows XP一直到最新的Windows …

体育直播网站源码_正在直播!火箭主场迎战雷霆,某知名体育网站进行比分直播...

北京时间10月29号,NBA常规赛继续进行。今天,火箭主场迎来一位特别的“客人”,他就是克里斯-保罗。在今年夏天,火箭将保罗交易至雷霆,威少加盟火箭与哈登重聚。这笔交易对于保罗来说,里面掺杂着爱恨情仇。当…

大型网站seo方案_一份合格的seo网站优化方案需要做哪些内容?

制定一份完美的SEO优化方案,企业网站才可以发挥出更好的作用。那么,该怎么制定一份合格的seo网站优化方案?需要做哪些内容呢?第一、网站定位要清晰:网站定位是什么?也就是说,您需要服务的是哪些对象,客户群是谁?确…

网站服务器的容量怎么看,网站服务器空间大小会对我们产生什么影响?要怎么选择?...

网站服务器空间大小通俗来讲也就是网站服务器的硬盘大小,它决定着我们的网站可以存储多少数据等等。当我们选择网站服务器空间时,如果过小,势必会对网站的运行产生一定的不良影响,过大也会造成资源浪费。那么究竟该如何选择呢&…