python爬虫记录时间_Python新手写爬虫全过程记录分析

目标网站:http://bohaishibei.com/post/category/main/(一个很有趣的网站,一段话配一个图,老有意思了~)网站形式如下:

目标:把大的目标分为几个小的目标。因为第一次干这个,所以对自己能力很清楚,所以完成顺序由简单到复杂。

1.爬取一期的内容,包括标题,和图片的url

2.把数据存在本地的txt文件中

3.想爬多少就爬就爬少

4.写一个网站,展示一下。(纯用于学习)

Let‘s 搞定它!

第一步:

我用的是google浏览器,进入开发者模式,使用’页面内的元素选择器‘,先看一下内页中的结构,找到我们要的数据所在’标签‘。

这里我们需要的博海拾贝一期的内容全部在

第一条红线是:页面内的元素选择器

第二条是:内容所在标签

第三条是:title

经过分析得出,我只要,这个标签的内容:所以写了下面的方法:

这里需要说一下:在写这个爬虫之前我就打算只用字符串的内置函数来处理匹配问题,所以我就上http://www.w3cschool.cc/python/进入到字符串页面,大致看了一遍字符串的内建函数有哪些。

partition() 方法用来根据指定的分隔符将字符串进行分割。

如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

partition() 方法是在2.5版中新增的。参考:http://www.w3cschool.cc/python/att-string-partition.html

这样我就得到只有内容的字符串了,干净~

第二步:

得到title的内容。title的格式如下,我只要’【2】‘后面的文字,后面的img暂时不考虑一步步的来。

【2】这是我最近的状态,请告诉我不是我一个人!

http://ww4.sinaimg.cn/mw690/005CfBldtw1etay8ifthnj30an0aot8w.jpg />

我写了下面的方法:

这里用try....except是因为我不知道怎么跳出循环。。。。求大神有更好的方法告诉我。

我这里跳出循环用的是当抛出VlaueError异常就说明找不到了,那就返回列表。就跳出循环了。

num1是】的位置,num2是

的位置,然后用序列的切片,咔嚓咔嚓一下就是我想要的数据了。这里需要注意的是:切片’要头不要尾‘所以我们的得到的数据就是这个样子的:

哎呀,这个是什么鬼!要头不要尾就是这个意思!

然后我就想:那就把num1加1不就完了吗?我真是太天真了。。。。

请+3,我觉得原理是这样的,这个是个中文字符!(求大神指点)

第三步:

交代清楚我昨天晚上做的事情了,记录下时间——10:01,下面我要爬图片的url了。这里要说一下,如果要把图片下下来,最重要的一步就是得到url,然后下载下来保存到本地(用文本的IO)。

我先获得url,实现原理同获取title,我在想,既然一样卸载获取title的方法里好,还是在写一个方法好。我单独写了一个方法,但是其实就是复制了一下title的方法,改了下匹配的字符串,代码如下:

结果图如下:

这里发现,有的时候一个title会有很多个图片。我思考之后有如下思路:

1.需要写一个方法,当一个title出现多个图片的时候,捕获url。这个需要有一个判断语句,当url长度大于一个url长度的时候,才需要调用这个函数。

2.多个图片的url怎么放?使用符号隔开存放还是嵌套放入一个数组里面?我这里打算用’|‘隔开,这样的话加一个判语句,或者先判断一下url长度,都可以进行。

这个问题先放在这里,因为当我要下载的时候这个url才需要过滤,所以先进行下一步,把数据存到本地txt文中,这里在解决这个问题也不晚。

第四步:

把数据存到本地的txt中。Python文件IO参考资料:http://www.w3cschool.cc/python/python-files-io.html

这里需要注意的是,文本写入的时候记得close,还有就是注意打开文本的模式。

这里我考虑了一个问题,根据《编写高质量代码——改善python程序的91个建议》这本书中写道的,字符串连接时,用jion()效率高于’+‘

所以我写了如下代码:

这样造成了一个问题,看图

造成最后一个和新的一个列表写入时在同一行。同时用with....as更好。修改后代码如下:

下面研究title和img以什么样的格式存入txt文本:

title$img

这里我有一个概念混淆了,+和join()方法的效率问题主要在连接多个字符串的时候,我这个只用连接一次,不需要考虑这个问题。

文本中的内容如下:愿你贪吃不胖,愿你懒惰不丑,愿你深情不被辜负。$http://ww1.sinaimg.cn/mw690/005CfBldtw1etay8dl1bsj30c50cbq4m.jpg"

这是我最近的状态,请告诉我不是我一个人!$http://ww4.sinaimg.cn/mw690/005CfBldtw1etay8ifthnj30an0aot8w.jpg

引诱别人和你击拳庆祝,然后偷偷把手势变成二,就可以合体成为蜗牛cosplay……$http://ww2.sinaimg.cn/mw690/005CfBldtw1etay8fzm1sg30b40644qq.gif

原来蜗牛是酱紫吃东西的。。。。涨姿势!$http://ww4.sinaimg.cn/mw690/005CfBldtw1etay8egg8vg30bo08ax6p.gif

写入文本的最后,解决多个图片的问题:

输出如下:元气少女陈意涵 by @TopFashionStyle$http://ww2.sinaimg.cn/mw690/005CfBldtw1etay848iktj30bz0bcq4x.jpg|http://ww1.sinaimg.cn/mw690/005CfBldtw1etay83kv5pj30c10bkjsr.jpg|http://ww3.sinaimg.cn/mw690/005CfBldtw1etay82qdvsj30c10bkq3z.jpg|http://ww1.sinaimg.cn/mw690/005CfBldtw1etay836z8lj30c00biq40.jpg|http://ww4.sinaimg.cn/mw690/005CfBldtw1etay8279qmj30ac0a0q3p.jpg|http://ww1.sinaimg.cn/mw690/005CfBldtw1etay81ug5kj30c50bnta6.jpg|http://ww2.sinaimg.cn/mw690/005CfBldtw1etay8161ncj30c20bgmyt.jpg|http://ww2.sinaimg.cn/mw690/005CfBldtw1etay804oy7j30bs0bgt9r.jpg|

暂时功能是实现了,后面遇到问题需要修改在改吧。。。。新手走一步看一步!!!

到此为止,已经完成了前两个简单的计划:

1.爬取一期的内容,包括标题,和图片的url

2.把数据存在本地的txt文件中

全部代码如下:

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

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

相关文章

JAVA之编译期和运行期区别

编译期:检查是否有语法错误,如果没有就将其翻译成字节码文件。即.class文件。 运行期:java虚拟机分配内存,解释执行字节码文件。 从以下代码开始说明,欢迎大家指正 可以思考下,第一行跟第二行在编译时期有…

中国地质大学计算机地理信息学院,英文主页 软件工程、计算机科学与技术、地理信息科学等相关专业学生 中国地质大学(武汉)教师个人主页系统...

Associate professorSupervisor of Masters CandidatesHonors and Titles :中国地质大学第六届三育人标兵;中国地质大学首届朱训青年教师教育奖励基金;2003、2005、2008、2014、2015、2018年度获中国地质大学信息工程学院考核院/校级优秀。Gender :MaleE…

Java 设计模式——组合模式

概述 有时我们可能会被要求处理一个层级结构明显的对象,比如上下级的公司员工、比如层级嵌套的文件夹,还有丰富多彩的美食菜单。可是,我们可能要屡试不爽地编写深度搜索代码、要小心翼翼地编写递归逻辑。现在你可以忘掉这些,学习…

python分析犯罪数据_使用 SparkSQL 分析纽约市犯罪数据

在实验《使用 SparkSQL 分析纽约市犯罪数据》时候创建 DataFrame 并注册成表,报错!sqlContext.createDataFrame(Crimes).registerTempTable("Crimes")17/11/10 07:55:17 ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)org.apach…

计算机硬件四则运算实验,实验一四则运算(INTERNET).pdf

123456电工电子实验中心实验报告课程名称: 计算机硬件技术基础实验实验名称: 实验一 四则运算姓名: 学号:评定成绩: 审阅教师:实验时间:123456123456一、 实验目的要求1. 熟悉汇编语言的框架结构&#xff0…

关于海康官网接口文档中:取流URL有效时间为5分钟表述歧义的说明

在海康官方在线接口文档中(原文链接:https://open.hikvision.com/docs/63f761576c594a309708525e1eefdbdb),关于视频预览接口中:获取监控点预览取流URLv2 ,这个接口的接口说明第6条为保证数据的安全性&…

计算机原理课程设计 第二版pdf,计算机组成原理课程设计二.pdf

计算机组成原理设计文档目 录实验简介实验原理 ……………………………………………………………… 2设计原理 ……………………………………………………………… 3实验设备 ……………………………………………………………… 3设计人员 …………………………………………………

调用海康视频接口获取预览取流的URL

开始之前请参考海康官方SDK文档 鉴于前段时间刚接触视频这一块,整理了自己的一些经验,具体的你们还是参考文档来吧 附上文档地址 https://open.hikvision.com/docs/docId?productId5c67f1e2f05948198c909700&curNodeId16741aecc05944a6b0cd1341d68…

c if语句多个条件判断顺序_Java中的流程控制语句 (基础篇四)

流程控制就是对事物次序的布置和安排,在程序中就是对代码执行次序的安排和控制程序中的流程控制主要有三种:顺序流程、选择流程、循环流程。顺序流程:比如打印输出的代码按照指定的顺序结构依次排序,打印的结果按照代码的顺序执行打印&#x…

计算机绘图实训任务书,2012-2cad实训任务书与指导书.pdf

文档介绍:计算机绘图 AutoCAD实训任务书与指导书机械制图教研室编写河北工业职业技术学院2004 年 6 月计算机绘图 AutoCAD实训任务书适用专业:高职机电、模具、数控、机制等专业一、“计算机绘图实训周”的性质“计算机绘图实训周”是根据机械制图教学大纲要求安排的…

五种常见流媒体协议

五种常见流媒体协议 流媒体(streaming media)是指将一连串数据压缩后,经过网络分段发送,即时传输以供观看音视频的一种技术。 通过使用 streaming media 技术,用户无需将文件下载到本地即可播放。由于媒体是以连续的…

git checkout 会把改动带过去吗_原创 | 操作失误不要慌,这个命令给你的Git一次反悔的机会...

点击上方蓝字,关注并星标,和我一起学技术。今天我们来介绍git当中两个非常非常好用的工具,git show和reflog。这两个命令虽然不是必知必会,但是如果熟练使用可以极大地帮助我们查看代码仓库的问题,以及在我们操作失误的…

计算机指令执行与时序逻辑,时序逻辑系统

时序逻辑电路其任一时刻的输出不仅取决于该时刻的输入,而且还与过去各时刻的输入有关。常见的时序逻辑电路有触发器、计数器、寄存器等。时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态&#xff0…

三种主流流媒体协议比较

一、介绍 在流媒体协议中,常用的流媒体协议主要有 HTTP协议,RTSP协议和RTMP协议。 在国内视频网站多采用HTTPMP4或者HTTPFLV协议传输视频,而国外使用RTMP,RTSP等专门的流媒体格式。 二、协议介绍 1、HTTP协议: HTTP的视频协议…

flume连接kafka_日志收集系统架构设计:(flume+zookeeper+kafka+php+mysql )

正文内容一、安装jdk二、安装flume三、安装kafka1、zookeeper2、kafka四、启动测试步骤五、目录说明六、日志收集系统设计图七、大数据参考资料推荐一、安装jdk -(版本:1.8.0_191)1.下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk8…

2020班徽设计图案高中计算机,高铁工程学院举办2020级班徽设计大赛

大赛现场12月3日,高铁工程学院团总支第四届“班徽设计”大赛在GB250教室隆重举行,高铁工程学院20级新生各班参赛,20级辅导员代表出席评委席并参与评分。获奖选手领取证书本次比赛采用了线下评分及线上投票相结合的方式。比赛开始,…

Web浏览器没有Flash如何播放RTMP协议直播

各大主流浏览器在很早的时候就已声明 2020 年底不支持 Adobe Flash。所以已经线上运行的项目以及涉及直播的项目,都会涉及一个问题 : “没有 Adobe Flash 在 Web 浏览器端如何播放 RTMP 直播流?” 还好有先见之明,我参与涉及直播的…

opencv运动目标跟踪预测_基于Opencv的运动目标的检测和跟踪.pdf

第 20卷 第 l2期 电子设计工程 2012年 6月Vol_20 No.12 ElectronicDesignEngineering Jun.2012基于Opencv的运动 目标的检测和跟踪白瑞.姜明新(大连 民族学院信息与通信工程学院,辽宁 大连 116600)摘要 :检测运动物体需…

日照职业单招计算机专业,日照职业技术学院单招专业介绍-机电一体化技术

山东单招专业:日照职业技术学院2015年共有二十九个专业面向普高生和中专学生单招,其中机电一体化技术专业极受欢迎,每一年报考学生非常多,下面请看日照职业技术学院单招机电一体化技术专业介绍。机电一体化技术专业开设于2002年&a…

video-js RTMP直播

目前主流的几种直播协议 协议传输方式视频封装格式延时数据分段html播放httpflvhttpflv低连续可通过html5解封包播放(flv.js)rtmptcpflv tag低连续不支持dashhttpts文件高切片可通过html5解封包播放(hls.js)hls$1mp4 3gp webm高切片如果dash文件列表是mp4webm文件,…