python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址

news/2024/5/20 20:39:26/文章来源:https://blog.csdn.net/weixin_39877898/article/details/110340029

认识爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。(引用自百度百科)

爬取网站

在此笔者爬取了神印王座,神印王座全文阅读 已完结 – 唐家三少作品网站上的一部小说,一下是该源网址打开后的章节目录。

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

接下来,我们便打开其网址的源代码:

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

我们看到源代码是应该用'''utf-8'''格式来解析的。然后我们便可以编写我们的代码了!

构建爬虫

from urllib import request

import re

def getReq(url):

url_req = request.urlopen(url)

return url_req

web_and_page = []

http_req = getReq("http://www.jueshitangmen.info/shenyinwangzuo/")

data = http_req.read().decode('UTF-8')

前面两行引入了"reques"爬虫包,之后定义了一个函数,这个函数用来抓取源网址的源代码,最后就是从上文得出解析格式是用'' utf-8''。这之后整个网页的源代码我们都爬取到了。以下便是爬取到的数据的截取部分:

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

我们可以从这张图片的左上角的滚轮中可以看出整个网页的源代码数据还是挺大的,但是我们需要爬取的是此网站的章节目录及其网址,那么,我们就需要将我们的爬虫程序整体优化,以此来得到我们所想要的数据。

代码优化

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

以上便是需要爬取的数据,其中有章节目录及其网址,那么找到每一行之间相同的代码便是:

这是每一前部、中部以及尾部相同的代码。 那么就可以根据前部和尾部相同代码把我们需要的章节目录及其网址爬取出来:

tr = re.findall(r'

',data,re.S)

在此代码中,从刚刚爬取的数据''data''中截取前部是''

''之间的数据 (包括前部和尾部)

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

代码写到这里,说明我们的目标已经完成一半了,但行百里者半九十 ,至此,还不能松懈,因为我们可以看到我们爬取到的数据中还有一些无关代码,那么我们需要将这些代码清除 。而'''replace''' 便是我们需要用到的函数,相信很多人也知道replace语义便是代替,所以我们现在做的就是将这些无关代码用空格符来代替,以下便是具体代码:

firsttable = firsttable.replace('href="', ' ')

''replace('','')''左边单引号内便是需要被替换的代码,而右边单引号是替换代码,所以我们根据'''replace'''来将那些无关代码一一用空格代替。

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

这便是我们所需要的数据,左边是网址,右边是目录,但是这个网页的源代码和子网址是在一起的,所以我们的爬取程序便少了一步。之后,我又爬取了一个网站,也是同一部小说,但是这个网站的源代码里面就只有一个子网和章节目录。所以我又开始了新一轮的爬取。

子网与源网址的连接

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

从此图我们可以看到现在我爬取的网址是一个不完全的网址,这便是这个网站子网网址,如果我们就此复制子网网址,然后在浏览器中打开我们是打不开的,所以我们需要将其源网址连接子网址。

for hl in htmllist:

newurl = "https://www.9dxs.com/1/1026/"+hl

firsttable = newurl.replace('">', ' ')

我利用了一个'''for'''循环将源网址和子网址用“+”连接起来,然后也清除了一下无关代码

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

这张图与上一图对比,就是将一些无关代码清除并且加上了源网址。到这一步,我们便可以将我们爬取的章节目录及其网址保存在我们的电脑中,以后想看这部小说就可以直接复制小说章节的网址然后在浏览器中打开即可。

保存数据

outfile = open('爬取网络小说神印王座的章节目录的网址1.txt','w')

outfile.write(firsttable)

outfile.close()

以上代码便是一个打开 文件的方法,利用''open''方法打开我们需要保存到的“txt”文件中。在此之前我是没有这个“爬取网络小说神印王座的章节目录的网址1.txt”文件的,利用''open''会在你安装python的文件夹里新建一个同名 文件,以此来打开这个文件。'w'代表着读写这个文件,例如一些基本的文件操作'r'便是只读 ,而不能修改这个文件。第二行我们便把我们爬取到的数据存储到了这个文件中,之后 我们关闭这个文件。

ef15bdad3872?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

打开“爬取网络小说神印王座的章节目录的网址1.txt”文件的 效果图

以上便是用python爬虫爬取网站数据的一个小程序,顺带附上自己整个爬取程序。

from urllib import request

import re

def getReq(url):

url_req = request.urlopen(url)

return url_req

web_and_page = []

http_req = getReq("https://www.9dxs.com/1/1026/index.html")

data = http_req.read().decode('gbk')

tr = re.findall(r'

',data , re.S)

firsttable = tr[0]

def getHtml(data):

htmllist = re.findall(r'href="(.*?)',firsttable)

return htmllist

htmllist = getHtml(data)

outfile = open('爬取网络小说神印王座的章节目录的网址1.txt','w')

for hl in htmllist:

newurl = "https://www.9dxs.com/1/1026/"+hl

firsttable = newurl.replace('">', ' ')

print(firsttable)

outfile.write(firsttable+'\n')

outfile.close()

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

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

相关文章

最大的脚本网站_网站页面性能优化注意事项

为了更好地提升用户的浏览体验,《移动落地页体验白皮书4.0》中规定:页面的首屏内容应在1.5秒内加载完成。百度搜索对用户行为的研究表明,页面首屏的加载时间在1.5秒以内的页面,会带给用户流畅快捷的极速体验。近期发现有部分站点移…

基于django的视频点播网站开发-step10-后台评论管理功能...

本讲中,我们会讲到评论管理功能,数据库中的每一条是来自用户的评价,因此后台中的评论管理只有评论列表和评论删除功能,没有增加评论和编辑评论。 照例我们先添加评论管理的相关路由 path(comment_list/, views.CommentListView.as…

这个机器学习论文大众评审网站,要让每篇arXiv论文都得到讨论

圆栗子 发自 凹非寺 量子位 出品 | 公众号 QbitAI研究机器学习的人类们,通常喜欢把研究成果发上ArXiv。不过,ArXiv上面没有讨论板,公开讨论场所多集中在Reddit和推特上。而社交平台又无法提供纯粹的学术环境,讨论过程中很容易歪楼…

不要在网站上无限滚动!

人们在浏览网站的时候是喜欢用“无限滚动”,还是喜欢点击“阅读更多”或“查看更多”?无限滚动消除了分页的需要——分页是将数字内容分离到不同页面的过程。但这种方式真的好吗?作者 | Monish reddy译者 | 风车云马,责编 | 屠敏出品 | CSDN…

SEO技巧--代码优化

SEO技巧 一、搜索引擎工作原理 当我们在输入框中输入关键词,点击搜索或查询时,然后得到结果。深究其背后的故事,搜索引擎做了很多事情。 在搜索引擎网站,比如百度,在其后台有一个非常庞大的数据库,里面存储…

php网站用框架与不用的区别,做前端网页是不是必须要用网页框架

做前端网页是不是必须要用网页框架2017-09-15做前端网页是不是必须要用网页框架?个人感觉这分为两种情况,一种是能力超强,时间够用的情况,另外一种就是用前端网页框架,可以节约开发时间和减少工作量,这可以…

5个资源满满的网站,都是百度找不到的好资源,30T的硬盘瞬间爆满

日常最让人心烦的事莫过于在百度上找不到自己想要的资源了,如果不急可以慢慢找那还行,但是如果是非常急,现在就要用的话,真的瞬间就想砸了电脑。找不到自己想要的资源,配置再高的电脑也没用。其实,既然在百…

想快速了解AI各领域的前沿研究成果?可以来这个网站看看 | 资源

乾明 发自 凹非寺 量子位 报道 | 公众号 QbitAI想了解AI各领域的前沿研究成果吗?现在,只需要点几下鼠标就行了。近日,一个名为StateOfTheArt.ai的网站在NeurIPS大会期间上线,收罗了人工智能各个领域的前沿研究成果。并按照领域、任…

PC比电脑好玩的秘密是什么?答案就是因为有这些神奇的网站!

五花八门小工具合集http://www.nicetool.net/ 该网站真的很“乱”!因为里面的小功能真的很多!无论是Gif制作、证件照换底色、还是搞笑的王思聪微博生成,它都能让你得心意手! 根据你的星座推荐电影https://magicmoviesorter.com/ 如…

傅立叶变换还能画简笔画?谷歌工程师开发的这个试玩网站火了| 附资源

晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI无论是处理声音和图像信号,都必须用到傅立叶变换。其实除了这些“正经”用途,它还能做一些有意思的事情。最近,一位名叫Jez Swanson的谷歌工程师自己写了篇博客,教你用傅立叶变换画出…

程序员去交友网站找女友,结果意外了...

1024程序员节(今天是活动最后一天),CSDN旗下的码书商店为程序员放个“价”,全场所有书籍8折,电子产品可以拥有大额优惠券,购买前可加文末客服微信领取优惠券哦!卫衣原价249元,1024专…

刷新一次,生成一张逼真假脸:用英伟达StyleGAN做的网站,生出了灵异事件

栗子 岳排槐 假装发自 凹非寺量子位 出品 | 公众号 QbitAI一个新网站在国外火了。玩法很简单,每次刷新这个网站的页面,都能出现一张人脸。大多数情况下,都是一张眉目清晰、面含微笑的和善人脸。比如这样:不过,这个网站…

为了治好你的脸盲,这家表情包网站开源了一个明星识别器丨GitHub

郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI小鲜肉太多,让人分不清,需要AI替我识别,这又是谁家的爱豆。现在,有一家公司来拯救脸盲了,不是你熟悉的硅谷/后厂村大公司,而是一家动图表情包网站&#xff…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时…

只需三种手段,将传统的网站的性能提高 24%!

对于技术人而言,性能优化是一个亘古不变的话题。而随着框架、语言、库等工具的不断演进,传统的优化手段是否仍然适用?在创新的环境之下,又有哪些较为捷径的优化手段?在本文中,作者将以一年前的网站为测试对…

SCPPO(十一):网站发布中的问题锦集—ReportViewer版本问题

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 【前言】 在小编的上篇博文《SCPPO:网站发布中的问题锦集—手动发布网站》中卖了个关子—遇到的问题(4)—部署过程中引用DLL与服务器不一致问题解决。当然在网站发布出…

SCPPO(十):网站发布中的问题锦集—手动发布网站

【前言】 现在做的项目是个维护性的项目,我们是第三期的末尾,最近正忙着验收。当然在验收前会有些功能需要修改,另外也会有新的需求需要实现;再加之最近有企业核对数据等等,所以网站的发布变成主要的工作之一。当然自己…

阿里云个人网站免费绑定SSL证书(超详细图文教程)

前言 一年前搭建了个人网站,由于个人小程序绑定必须需要绑定HTTPS,于是乎绑定了SSL证书,最近阿里云一直在提醒SSL证书一年到期,提示续费;SSL证书续费几千,于是乎查找方案,阿里云提供个人免费SSL…

WordPress网站访问慢解决方案(超详细图文教程)

前言 之前自己搭建一个WordPress个人网站:https://zhanghan.xin;最近发现访问比较慢,于是乎进行了排查,下面是优化的方案。 优化前: 加载耗时:21秒 优化后: 加载耗时:250毫秒 优化后…

漫画:为什么一到年底,部分网站就会出现日期混乱?

作者 | 漫话编程责编 | Elle2019年最后一天,在家里看着跨年晚会,享受着这一年最后一天的闲暇时光,女朋友在旁边玩手机。看了一会之后她突然问我一些很奇怪的问题。于是我拿过他的手机,看到了下面这一幕:这是微信官方出…