爬虫基本原理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了爬虫基本原理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2350字,纯文字阅读大概需要4分钟。
内容图文
![爬虫基本原理](/upload/InfoBanner/zyjiaocheng/1136/38b7ad28fde641ccbedbc39c45df1d7d.jpg)
一、爬虫基础简介必备知识
三种爬虫方式
? 通用爬虫: 抓取系统重要组成部分,获取的是整张页面数据
? 聚焦爬虫: 建立在通用爬虫之上,抓取页面指定的局部内容
? 增量式爬虫: 检测网站数据更新的情况,只抓取更新出来的数据
robots.txt协议: 君子协议,规定网站哪些数据可不可爬
http协议: 服务器和客户端进行数据交互的一种形式。
https协议: 安全的超文本传输协议(证书秘钥加密))
请求头:
-
User-Agent: 请求载体的身份标识
-
Connection: 请求完毕后,是否断开连接或者保存连接
响应头:
- content-Type: 服务器响应回客户端的数据类型
加密方式:
- 对称秘钥加密
- 非对称秘钥加密
- 证书秘钥加密
二、爬虫的基本流程(四步曲)
发送请求 ---> 获取响应内容 ---> 解析内容 ---> 保存数据
1.发送请求: 向目标站点发送一个Request, Request包含了请求头,请求体等参数
2.获取响应内容: 服务器响应回来的Response,包含了html,json,图片等数据
3.解析内容: 解析Response数据。(正则,第三方库。。。)
4.保存数据: Mysql ,本地文件file,MongoDB,Redis。。。
三、Request
1.请求方式:
GET,POST,HEAD,PUT,DELETE,OPTHONS。。。
GET请求携带的参数拼接在url,POST请求携带的参数放在请求体内,存放在form data
2.请求url:
url全称统一资源定位符 https://www.baidu.com/s?wd=靓仔
中文·靓仔·会被解码
3.请求头:
User-agent:告诉它这是浏览器发过来的请求(请求头中如果没有user-agent客户端配置,服务端可能将你当做一个非法用户)务必加上
host:
cookies:cookie用来保存登录信息
Referer:上一次的跳转路径
一般做爬虫都会加上请求头
4.请求体:
如果是get方式,请求体没有内容
如果是post方式,请求体是format data
ps:
1、登录窗口,文件上传等,信息都会被附加到请求体内
2、登录,输入错误的用户名密码,然后提交,就可以看到post,正确登录后页面通常会跳转,无法捕捉到post
请求例子一:
import requests
from urllib.parse import urlencode
# 请求方式
kwords = input('请输入关键字:>>>').strip()
res = urlencode({'wd': kwords}) # 使用urlencode可以解析中文
url = "https://www.baidu.com/s?" + res
# 请求头
baidu_headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 chrome-extension",
}
# 发送请求
response = requests.get(url, headers=baidu_headers)
print(response.status_code) # 响应状态码
print(response.text) # 返回的html
# 保存数据
with open('search.html', 'w', encoding='utf-8') as f:
f.write(response.text)
print('保存成功')
实例二:
import requests
# 请求方式
kwords = input('请输入关键字:>>>').strip()
# 使用urlencode可以解析中文
url = "https://www.baidu.com/s?"
params = {'wd': kwords}
# 请求头
baidu_headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 chrome-extension",
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
}
# 发送请求
response = requests.get(url,
params=params,
headers=baidu_headers,
)
print(response.status_code) # 响应状态码
# print(response.text) # 返回的html
# 保存数据
with open('search1.html', 'w', encoding='utf-8') as f:
f.write(response.text)
print('保存成功')
原文:https://www.cnblogs.com/guapitomjoy/p/12121701.html
内容总结
以上是互联网集市为您收集整理的爬虫基本原理全部内容,希望文章能够帮你解决爬虫基本原理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。