理解爬虫原理

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

1. 简单说明爬虫原理

    (1)首先选取一部分精心挑选的种子URL;

    (2)将这些URL放入待抓取URL队列;

    (3)从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。

    (4)分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。

2. 理解爬虫开发过程

1).简要说明浏览器工作原理(流程)

向服务器发起请求,通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器的响应。获取响应内容 如果服务器正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML、JSON、二进制文件(如图片、视频等类型)。解析内容 得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是JSON,可以直接转成JOSN对象进行解析,可能是二进制数据,可以保存或者进一步处理。保存内容 保存形式多样,可以保存成文本,也可以保存至数据库,或者保存成特定格式的文件。

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

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

3).了解网页

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

<html >
<head>
<title>注册页面</title>
</head>
<body>
<form action="" method="post">
<table>
<tr><th colspan="2">注册用户</th></tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="userName" /></td>
</tr>
<tr>
<td>性别:</td>
<td>男:<input type="radio" name="userSex" value="男" checked="checked">女:<input type="radio" name="userSex" value="女"></td>
</tr>
<tr>
<td>年龄:</td>
<td><select name="userAge">
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="24">24</option>
</select></td>
</tr>
<tr>
<td>个人简介:</td>
<td><textarea name="userInfo" cols="30" rows="15"></textarea></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input type="text" name="telephone" /></td>
</tr>
<tr>
<td>照片:</td>
<td><input type="file" name="userPhoto" /></td>
</tr>
</table>
</form>
</body>
</html>

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

通过BeautifulSoup(html_sample,'html.parser')把上述html文件解析成DOM Tree,select(选择器)定位数据

(1)输出该网页中所有的a标签

 

(2)输出类名为search-input的标签

(3)输出id名为menu的标签。

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

 

posted on 2019-03-26 10:54  免疫  阅读(135)  评论(0编辑  收藏  举报