理解爬虫原理
作业要求: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.提取一篇校园新闻的标题、发布时间、发布单位