理解爬虫原理
1. 简单说明爬虫原理
简单来说模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中
2. 理解爬虫开发过程
1).简要说明浏览器工作原理;
(1):向服务器发起请求,通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器的响应。
(2):获取响应内容 如果服务器正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML、JSON、二进制文件(如图片、视频等类型)。
(3):解析内容 得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是JSON,可以直接转成JOSN对象进行解析,可能是二进制数据,可以保存或者进一步处理
(4):保存内容 保存形式多样,可以保存成文本,也可以保存至数据库,或者保存成特定格式的文件。
2).使用 requests 库抓取网站数据;
requests.get(url) 获取校园新闻首页html代码
import requests
res=requests.get('http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0322/11042.html')
res.encoding='utf-8'
res.text
print(res.text)
3).了解网页
写一个简单的html文件,包含多个标签,类,id
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
<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><input type="text" name="userName" /></td>
</tr>
<tr>
<td>联系电话:</td>
<td><input type="text" name="telephone" /></td>
</tr>
</table>
</form>
</body>
</body>
</html>
4).使用 Beautiful Soup 解析网页;
通过BeautifulSoup(html_sample,'html.parser')把上述html文件解析成DOM Tree
select(选择器)定位数据
找出含有特定标签的html元素
找出含有特定类名的html元素
找出含有特定id名的html元素
此处找出id=menu的模块:
3.提取一篇校园新闻的标题、发布时间、发布单位
url = 'http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html'