爬虫实战开发学习(一)
文章目录
鸽子的自我修养 -Jerry Yu
呀嘞呀嘞💌,一直都想学爬虫,从上学期下定的决心,但一直考试周,压缩考试耽误(╬▔皿▔)╯,开始了开始了,不鸽了不鸽了(想起来就更新哦,尽量每周,两到三更)
我要让全世界知道我很低调!
—— Jerry Yu
学习爬虫前的准备
掌握一些基本的常识啦
1.Http和Https的区别
2.什么是URL,URN,URI
3.什么是HTML,CSS,JavaScript
简言之,
HTML(HyperText Markup Language):网页的内容和结构
CSS(Cascading Style Sheets):网页的样式
JavaScript:网页的行为,与用户的交互
4.网页点击F12进入开发者模式
自行百度了解掌握,什么是以下的红框框的内容
像是Cookie这样的东西,要重点学习,会有大用处.🎈
一.选择器
图中可以看到,网页的HTML源码中,基本内容都是通过id,class等对象进行嵌套组成的内容框架。那么对于不同的位置,都设置了不同的id等名称进行分开处理,我们想要定位到我们想要内容或者源码的位置,就要学会使用选择和定位的函数。
CSS选择器
1.在CSS中,我们使用CSS选择器进行定位节点
<div id='hello'>
表示成 #hello
其中#开头代表选择id,其后紧跟id的名称
2.如果是选择class作为windows的节点
就可以使用
.windows
以点‘ . ’开头代表选择class,其后紧跟class的名称
3.根据标签名筛选
例如想要选择二级标题,直接使用h2即可
4.CSS选择器支持嵌套选择
例如
#container.wrapper p
· 代表先选择id为continer的节点
· 然后选中其内部的class为wrapper的节点
· 然后再进一步选中其内部的p节点
如果不加空格的话,代表并列关系
例如
div#container.wrapper p.next
· 代表先选择id为container的div节点
· 然后选中其内部的class为wrapper的节点
· 再进一步选中其内部的class为text的p节点
5.CSS选择器的其他语法规则
二.爬虫的基本原理
爬虫就是获取网页并提取和保存信息的自动化程序
爬虫主要就是获取网页,即获取网页的源代码
1.关键部分是:构造一个请求并发送给服务器,然后接收到相应后并将其解析出来
实现这种操作的库有:urllib,requests等
2.分析源代码,提取信息
构造正则表达式
比较简单,但是可能容易出错
网页结果具有一定规则,所以可以根据网页节点属性,CSS选择器或XPath来提取网页信息的库
如Beautiful Soup,pyquery,lxml等
可以高效的提取节点的属性,文本值等
3.保存信息
可以保存为TXT或者JSON文本
也可以保存到数据库MySQL,MongDB等
也可以保存到远程服务器,借助SFTP等进行操作
4.自动化程序
爬虫代替人工来完成上述的爬取网页的过程,可以进行各种异常处理,错误重试等操作,更加高效的运行
我们所抓取的数据格式多种多样,包括文本,图像,视频,音频等,爬取后,保存成对应的文件名
有时可能出现urllib或者requests得到的代码和浏览器并不同,现在越来越多的网页采用Ajax,前端模块化工具进行构建,整个网页利用JavaScripts渲染出来的,
即原本的HTML网页就是空壳
对应的,我们可以分析其后台的Ajax接口,也可以使用Selenium,Splash这样的库来实现模拟Javascript的渲染
呼~第一天的爬虫就学到这里啦❤
看似短小的一篇文章,花了将近一个多小时进行编写
未来的暑假时间,持续更新,希望有所收获,爬虫更进一步,当然能“变现”就更好啦o((>ω< ))o
本文章学习的视频为:Python 3网络爬虫开发实战(图灵出品)
请大家多多支持原作者哈!