理解爬虫原理
本次作业的要求来自于: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类型
获取点击次数: