理解爬虫原理

本次作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2881

一. 简单说明爬虫原理

从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用;

二. 理解爬虫开发过程

1).简要说明浏览器工作原理:

1、发起请求

使用http库向目标站点发起请求,即发送一个Request

Request包含:请求头、请求体等 

Request模块缺陷:不能执行JS 和CSS 代码

 

2、获取响应内容

如果服务器能正常响应,则会得到一个Response

Response包含:html,json,图片,视频等

 

3、解析内容

解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等

解析json数据:json模块

解析二进制数据:以wb的方式写入文件

 

4、保存数据

数据库(MySQL,Mongdb、Redis)

文件

 

2).使用 requests 库抓取网站数据;

1)安装requests和beautifulsoups4

 

 

2)

requests.get(url) 获取校园新闻首页html代码

url="http://www.runoob.com/python/python-functions.html"
res=requests.get(url)
type(res)
res.encoding='utf-8'
res.text

截图效果:

 

3).了解网页

写一个简单的html文件,包含多个标签,类,id

利用学校官网随机的一篇新闻为例,获取以下信息

url="http://www.runoob.com/python/python-functions.html"

4).使用 Beautiful Soup 解析网页;

通过BeautifulSoup(html_sample,'html.parser')把上述html文件解析成DOM Tree

select(选择器)定位数据

找出含有特定标签的html元素

 

找出含有特定类名的html元素

 

找出含有特定id名的html元素

 

 

3.提取一篇校园新闻的标题、发布时间、发布单位、作者、点击次数、内容等信息

利用学校官网随机的一篇新闻为例,获取以下信息

url="http://www.runoob.com/python/python-functions.html"

要求发布时间为datetime类型,点击次数为数值型,其它是字符串类型。

截图为广州商学院官网某篇新闻:

获取正文:

 获取时间,作者等信息

将发布时间转为datetime类型

 

获取点击次数:

 

 

posted @ 2019-03-29 17:53  代码搬运小生  阅读(153)  评论(0编辑  收藏  举报