1. 什么是爬虫
请求网站并提取数据的自动化程序.
2. 爬虫基本流程
3. 什么是request与Response
3.1 Request 中包含什么
请求方式: 主要有get post
* 查看请求方式
* 请求方式的类别 HTTP/1.0 1. GET:偏向于获取的方式 大部分都是给后端一些参数,用来获取些列数据 2. POST:偏向于给服务器一些数据 大部分都是登录,给服务器一些信息,你给我一个简单的结果 3. PUT:偏向于给服务器一些信息,但是是添加使用 大部分做注册, 给服务器一些信息,你把这个信息存起来 4. HEAD:用来获取服务器头信息
HTTP/1.1 5. DELETE:偏向于删除 大部分是删除评论,删除微博 6. CONNECT:管道连接改变代理连接使用【不常用】 7. PATCH: 偏向于给服务器一些信息,偏向于修改一些信息 大部分用于完善用户资料 8. OPTIONS:用于获取服务器性能,但是需要服务端同意
* get 与 post 的区别
请求URL
URL:统一资源定位符
请求头
请求的配置信息
请求体
请求体一般在get 方式时么有请求体 在post 方式时,以form data 的形式出现,包含登录信息等。
3.2Response 包含什么
响应状态
状态码: 200 成功, 300: 跳转 404:找不到
响应头
响应体
preview 内的内容
4 实例引入
import requests
r = requests.get('https://www.baidu.com/')
print(type(r))
print(r.status_code)
print(type(r.text))
print(r.text)
print(r.cookies)
输出:
<class 'requests.models.Response'>
200
<class'str'>
<html>
<head>
<script>
location.replace(location.href.replace("https://","http://"));
</script>
</head>
<body>
<noscript><meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript>
</body>
</html>
<RequestsCookieJar[<Cookie BIDUPSID=992C3B26F4C4D09505C5E959D5FBC005 for .baidu.com/>, <Cookie
PSTM=1472227535 for .baidu.com/>, <Cookie __bsi=15304754498609545148_00_40_N_N_2_0303_C02F_N_N_N_0
for .www.baidu.com/>, <Cookie BD_NOT_HTTPS=1 for www.baidu.com/>]>
分别输出了 Response 的类型、状态码、响应体的类型、内容以及 Cookies。
通过运行结果可以发现,它的返回类型是 requests.models.Response,响应体的类型是字符串 str,Cookies 的类型是 RequestsCookieJar。
使用 get 方法成功实现一个 GET 请求,这倒不算什么,更方便之处在于其他的请求类型依然可以用一句话来完成,示例如下:
r = requests.post('http://httpbin.org/post')
r = requests.put('http://httpbin.org/put')
r = requests.delete('http://httpbin.org/delete')
r = requests.head('http://httpbin.org/get')
r = requests.options('http://httpbin.org/get')
5 能抓怎样的数据
6 怎样来解析
7 为什么我抓到的和浏览器中看到的不一样
抓到的是Javascript格式,需要进行ajax等解析
8 怎样解决JavaScript渲染的问题
9 怎样保存数据
|