爬虫在使用场景中的分类:
1.通用爬虫:
抓取系统重要组成部分,抓取的是一整张页面数据
2.聚焦爬虫:
是建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容
3.增量爬虫:
检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据。
反爬机制:
门户网站,可以通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取
反反爬策略:
爬虫程序可以通过制定相关的策略或者技术手段,破解门户门户网站中具备的反爬机制,从而获取信息
robots.txt协议:
君子协议,规定了网站中哪些数据可以被爬虫爬取,哪些数据不可以被爬取
http协议
概念:就是服务器和客户端进行数据交互的一中方式
常用请求头信息:
User-Agent:请求载体的身份标识
Connection: 请求完毕后,是断开连接还是保持连接
常用响应头信息
Content-Type: 服务器响应会客户端的数据类型
https协议:
安全的超文本传输协议
加密方式:
对称秘钥加密
非对称秘钥加密
证书秘钥加密
requests模块
python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。
作用:模拟浏览器发请求
如何使用:(requests模块的编码流程)
指定url
发起请求
获取响应数据
持久化存储
import requests
def main():
#指定url
url="https://www.sogou.com/"
#发起请求
response=requests.get(url=url)
#获取响应数据
page=response.text
print(page)
#持久化存储
with open("./sogou.html","w",encoding="utf-8") as file:
file.write(page)
print("获取信息完毕")
if __name__=="__main__":
main()
UA伪装
UA:User-Agent(请求载体的身份标识)
UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体为某一款浏览器,说明该请求是一个正常的请求。但是,如果检测到请求的载体身份标识不是基于某一款浏览器的,则表示该请求为不正常的请求(爬虫),则服务器端就很有可能拒绝该次请求。
UA伪装:
让爬虫对应的请求载体身份标识伪装成某一款浏览器
import requests
def main():
#指定url
url="https://www.sogou.com/web"
#UA伪装
header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36"}
kw=input("enter a word")
#输入要搜索的参数
param={"query":kw}
response=requests.get(url=url,params=param,headers=header)
page_text=response.text
filename=kw+".html"
with open(filename,"w",encoding="utf-8") as fp:
fp.write(page_text)
print("爬取信息完毕")
if __name__=="__main__":
main()