理解爬虫原理

理解爬虫原理

作业要求:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2851

1. 简单说明爬虫原理

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

流程:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

       

2. 理解爬虫开发过程

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

(1) HTML/SVG/XHTML,解析这三种文件会产生一个 DOM Tree。 
(2) CSS,解析 CSS 会产生 CSS 规则树。 
(3) Javascript脚本,主要是通过 DOM API 和 CSSOM API 来操作 DOM Tree 和 CSS Rule Tree.

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

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

    

     运行结果:

   

3).了解网页

<html><head>

<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<!--下面的tittle就是你网页最顶部的标签显示的内容-->
<title>这是我的网页</title>
<meta name="keywords" content="这是我的网页">
<meta name="description" content="这是我的网页">
</head>
 <!--下面是body的开始,背景颜色为#808080-->
<body bgcolor="#808080">
 <!--下面是建立了一个div,style里面是这个div的属性,依次是位置属性、宽度、高度、层级、左边框离父元素距离、上边框离父元素距离、padding right/left/top/bottom、背景颜色-->
<div style="position: absolute; width: 450px; height: 550px; z-index: 1; left: 400px; top: 60px; padding-left: 60px; padding-right: 60px; padding-top: 90px; padding-bottom: 60px; #FFFFFF" id="layer1">
<!--下面是建立了一个P元素,b标签是加粗字体的作用-->
<p align="center"><b>这是我的XXX页</b></p>
</body>
</html>

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

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

soup = BeautifulSoup(res.text,'html.parser')

select(选择器)定位数据:

soup = BeautifulSoup(res.text,'html.parser')
input = soup.select('li')
for li in input:
    print(li)

效果:
       

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

soup = BeautifulSoup(res.text,'html.parser')
classs = soup.select('.news-list-title')
for li in classs:
    print(li)

效果:

        

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

soup = BeautifulSoup(res.text,'html.parser')
id = soup.select('#menu')
print(id)

效果:

       

3.提取一篇校园新闻的标题、发布时间、发布单位

url = 'http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html'

soup = BeautifulSoup(res.text,'html.parser')
title = soup.select('.show-title')[0].text
info = soup.select('.show-info')[0].text
print(title)
print(info)

 运行效果:

            

posted on 2019-03-27 20:17  冷冻  阅读(178)  评论(0编辑  收藏  举报

导航