爬虫Day01
http协议
- 概念: 就是服务器和客户端进行数据交互的一种形式
常用请求头信息
- User-Agent : 请求载体的身份标识
- Connection : 请求完毕后,是断开连接还是保持连接
常用响应头信息
- Content-Type : 服务器响应回客户端的数据类型
https协议
- 安全的超文本传输协议
数据加密方式
- 对称密钥加密
- 非对称密钥加密
- 证书密钥加密
第一滴血
- requests模块:python中的原生的一款基于网络请求的模块,功能强大,简单便捷,效率极高
作用
模拟浏览器发请求
使用
- 指定url
- 发起请求
- 获取响应数据
- 持久化存储
编码
import requests
if __name__ == '__main__':
url = 'https://www.sogou.com/' # 指定url
response = requests.get(url=url) #发起请求
# 响应数据
page_text = response.text
# 持久化存储
with open('./sogou.html','w',encoding='utf-8') as fp:
fp.write(page_text)
print("success")
简易网页采集器
import requests
# 反爬机制::UA检测 门户网站的服务器会检测对应请求的载体身份标识,如果检测到载体身份标识为某一款浏览器,说明该请求为正常请求
# UA user-agent(请求载体的身份标识)
# 反反爬策略 UA伪装
if __name__ == '__main__':
# ua伪装
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
}
url = 'https://www.sogou.com/web?'
# 处理url携带的参数(封装到字典中)
kw = input("enter a word:")
param = {
'query': kw
}
# 对指定url发起的请求对应的url是携带参数的,并且处理了参数
response = requests.get(url=url,params=param,headers=headers)
#获取响应数据
page_text = response.text
fileName = kw + '.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print('success')
破解百度翻译
- post请求(携带参数)
- 响应结果是json数据
编码
import requests
import json
if __name__ == '__main__':
post_url = 'https://fanyi.baidu.com/sug'
# ua伪装
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'
}
# post请求参数处理,类似get
word = input('enter a word:')
data = {
'kw':word
}
# 发送请求
response=requests.post(url=post_url,data=data,headers=headers)
# 获取响应数据 json()方法返回的是obj
dic_obj=response.json()
print(dic_obj)
# 持久化存储
fileName = word +'.json'
fp = open(fileName ,'w',encoding='utf-8')
json.dump(dic_obj,fp=fp,ensure_ascii=False)
print('success')

浙公网安备 33010602011771号