一页网站源码分享(一个网页的源码怎么获取)

本篇文章给大家谈谈一页网站源码分享,以及一个网页的源码怎么获取对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

在爬取糗事百科的段子后,我又在知乎上找了一个爬取百度贴吧帖子的实例,为了巩固提升已掌握的爬虫知识,于是我打算自己也做一个。

实现目标:1,爬取楼主所发的帖子

2,显示所爬去的楼层以及帖子题目

3,将爬取的内容写入到文件里,并实现动态显示爬取进度

实现工具:python的requests库和正则表达式以及bs4库

首先我们爬取的帖子网址为:https://tieba.baidu.com/p/3138733512?see_lz=1&pn=1,该网址是只看楼主的帖子的网址,因此该网站的源代码内容均为楼主所发贴的内容,爬取起来也比较方便。我们发现需要爬取的帖子一共有5页,我们可以通过for循环来进行对每一页信息的爬取。

接下来我们来整体构建爬取的思路:

1,爬取该网页的源代码

2,用正则表达式提取所需内容

3,用正则匹配对所取内容进行精准修改以达到我们想要的内容

4,把内容写入到文件并显示写入进度

下面来介绍每一步的具体实现:

首先是获取源代码,这个已经比较简单了,大多数获取源代码的方式都可以用这段代码来实现:

其中的user_agent配置可以在网页的源代码中找到,其目的是将爬虫进行伪装成用户以此来获取更好的爬取体验

接下来我们要通过正则表达式来获取我们需要的“标题”,“帖子主要内容”以及“楼层”信息

通过分析源代码我们发现“标题”在

<title>……</title>

中可以找到,“帖子主要内容”在

<divid=”post_content_\\d*”class=”d_post_contentj_d_post_content”>……</div>

中可以找到,“楼层”信息可以在

<spanclass=”tail-info”>……</span><spanclass=”tail-info”>

中找到。其中“…….”表示所要提取内容,我们分别用两个函数来实现对此的提取

我们对每个方法都用tryexcept来保证其强健性。

但是我们发现我们对所提取的帖子内容有很多多余的成分:

<imgclass=”BDE_Image”src=”https://imgsa.baidu.com/forum/w%3D580/sign=cb6ab1f8708b4710ce2ffdc4f3ccc3b2/06381f30e924b899d8ca30e16c061d950b7bf671.jpg”pic_ext=”jpeg”pic_type=”0″width=”339″height=”510″><br><br><br><br>50惊喜新人王<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivS12AkS11WcjnMQsTddE2yXZInIi4k8KEu5449mWp1SxBADVCHPuUFSTGH+WZuV+ecUBG6CY6mAz/Zq1mzxbFxzAG+4Cm4FSU0=”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’迈卡威\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>迈卡威</a><br>上赛季数据<br>篮板6.2助攻6.3抢断1.9盖帽0.6失误3.5犯规3得分16.7<br><br><br>新赛季第50位,我给上赛季的新人王<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivS12AkS11WcjnMQsTddE2yXZInIi4k8KEu5449mWp1SxBADVCHPuUFSTGH+WZuV+ecUBG6CY6mAz/Zq1mzxbFxzAG+4Cm4FSU0=”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’迈卡威\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>迈卡威</a>。上赛季迈卡威在彻底重建的<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivTbCBRGuF91e6cwvXwi+nOsUCFQWyjKvntqT9uy6c+e1s3eo9XM+kBUaJGaqtq7WOznXcLnooXruQBvuApuBUlN”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’76人\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>76人</a>中迅速掌握了球队,一开始就三双搞定了热火赢得了万千眼球。后来也屡屡有经验的表现,新秀赛季就拿过三双的球员不多,迈卡威现在可以说在76人站稳了脚跟。<br>作为上赛季弱队的老大,<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivS12AkS11WcjnMQsTddE2yXZInIi4k8KEu5449mWp1SxBADVCHPuUFSTGH+WZuV+ecUBG6CY6mAz/Zq1mzxbFxzAG+4Cm4FSU0=”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’迈卡威\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>迈卡威</a>刷出了不错的数据,但我们静下心来看一看他,还是发现他有很多问题。首先,投篮偏弱刚刚40%的命中率和惨淡的26%的三分命中率肯定是不合格的!加之身体瘦弱,个字高大横移速度一般,防守端并没有数据表现得这么好!作为控卫失误偏多,离巨星还是有一定的差距,小子你是一飞冲天,还是迅速陨落,就看你的努力了!<br>说完缺点,来说说优点,作为后卫篮板球非常突出,高大的身形能较好的影响对方的出手,也能发现己方的空位球员。突破虽然速度一般,但节奏感不错,大局观也在平均水准之上。提醒瘦而高大,不会投篮,突破节奏好,大局观不错!这在几年前说出来是谁?没错断腿前的<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivT5ggWFC92MLwFHpDNBmn4rETPyFf5XUHwripOOA15C4U+GRIwDgEI46b99l0XyUM/jR49NyMTc/6qmUGNB+hoByExmB9N/65I=”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’利文斯顿\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>利文斯顿</a>!<br>就球队地位而言,<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivS12AkS11WcjnMQsTddE2yXZInIi4k8KEu5449mWp1SxBADVCHPuUFSTGH+WZuV+ecUBG6CY6mAz/Zq1mzxbFxzAG+4Cm4FSU0=”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’迈卡威\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>迈卡威</a>现在是绝对的老大,球你想怎么玩就怎么玩,数据你想怎么刷就怎么刷!去年的潜力新人<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivTKm3O5uii9sKBrDcAE8/xDK4qTjgNeQuFPhkSMA4BCOOm/fZdF8lDP40ePTcjE3P+qplBjQfoaAchMZgfTf+uS”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’诺尔\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>诺尔</a>是<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivQdeSiO+EjvouPd1sAEaAOyK4qTjgNeQuFPhkSMA4BCOOm/fZdF8lDP40ePTcjE3P+qplBjQfoaAchMZgfTf+uS”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’蓝领\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>蓝领</a>,其他人都可以清退,恩比德还受伤不能打,<ahref=”http://jump2.bdimg.com/safecheck/index?url=x+Z5mMbGPAsY/M/Q/im9DR3tEqEFWbC4Yzg89xsWivTbCBRGuF91e6cwvXwi+nOsUCFQWyjKvntqT9uy6c+e1s3eo9XM+kBUaJGaqtq7WOznXcLnooXruQBvuApuBUlN”class=”ps_cb”target=”_blank”onclick=”$.stats.track(0,\\’nlp_ps_word\\’,{obj_name:\\’76人\\’});$.stats.track(\\’Pb_content_wordner\\’,\\’ps_callback_statics\\’)”>76人</a>队的战绩怎么样,就看你了!但是等到诺尔成熟(假如不是水货),恩比德伤愈(他技术上不可能水,只是看伤病了)你就有一队很好的内线组合了!你能把他们带成什么成绩,这时候就是考验你迈卡威除了刷数据还有什么能力的时候了。’

这段提取的信息里有着大量多余的信息,因此需要我们进行细分,基本思路为将多余的信息用正则匹配出来,然后利用正则的替换方法把这些多余的内容替换为空格或者换行

在这里,我们来构建一个处理信息的类

将刚才乱码的信息经过这个类的处理后,我们可以得到下列信息:

50惊喜新人王迈卡威上赛季数据篮板6.2助攻6.3抢断1.9盖帽0.6失误3.5犯规3得分16.7新赛季第50位,我给上赛季的新人王迈卡威。上赛季迈卡威在彻底重建的76人中迅速掌握了球队,一开始就三双搞定了热火赢得了万千眼球。后来也屡屡有经验的表现,新秀赛季就拿过三双的球员不多,迈卡威现在可以说在76人站稳了脚跟。作为上赛季弱队的老大,迈卡威刷出了不错的数据,但我们静下心来看一看他,还是发现他有很多问题。首先,投篮偏弱刚刚40%的命中率和惨淡的26%的三分命中率肯定是不合格的!加之身体瘦弱,个字高大横移速度一般,防守端并没有数据表现得这么好!作为控卫失误偏多,离巨星还是有一定的差距,小子你是一飞冲天,还是迅速陨落,就看你的努力了!说完缺点,来说说优点,作为后卫篮板球非常突出,高大的身形能较好的影响对方的出手,也能发现己方的空位球员。突破虽然速度一般,但节奏感不错,大局观也在平均水准之上。提醒瘦而高大,不会投篮,突破节奏好,大局观不错!这在几年前说出来是谁?没错断腿前的利文斯顿!就球队地位而言,迈卡威现在是绝对的老大,球你想怎么玩就怎么玩,数据你想怎么刷就怎么刷!去年的潜力新人诺尔是蓝领,其他人都可以清退,恩比德还受伤不能打,76人队的战绩怎么样,就看你了!但是等到诺尔成熟(假如不是水货),恩比德伤愈(他技术上不可能水,只是看伤病了)你就有一队很好的内线组合了!你能把他们带成什么成绩,这时候就是考验你迈卡威除了刷数据还有什么能力的时候了。

这样的表达效果就可以让我清晰看到提取到的信息,所以这个类是成功的。接下来我们只需要将提取的信息输出就行。

我们先写一个写入标题信息和主体内容的方法,因为标题只在第一个网页上所以可以单独写一个方法

接下来我们只需要写一个执行的主函数即可,我们定义一下所要写入文件的路径,然后先写入文件的标题

接下来利用for循环来实现对每个网页的信息的输入,并打印写入文件的进度

以上就是爬取百度贴吧的帖子的所以内容,最后我认为如果我们将这些函数方法封装成一个类,效果会更好。

以下是全部代码

好了,文章到这里就结束啦,如果本次分享的一页网站源码分享和一个网页的源码怎么获取问题对您有所帮助,还望关注下本站哦!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平