python爬虫

本文介绍了网络爬虫的基本概念,包括通用爬虫、聚焦爬虫和增量式爬虫,并探讨了网站的反爬机制与反反爬策略。重点讲解了HTTP和HTTPS协议,包括超文本传输协议的特性、HTTPS的安全性以及加密方式。同时,提到了Python中的requests模块用于发送HTTP请求。最后,给出了一个简单的Python爬虫程序示例,展示了如何爬取搜狗主页的内容并保存到本地文件。
摘要由CSDN通过智能技术生成

什么是爬虫

简而言之

爬虫就是通过编写程序,模拟互联网发送请求,然后让其去抓取通过互联网返回的数据

爬虫在使用场景的分类

  • 通用爬虫
    • 抓取网站重要的信息,通常抓取的是一整张页面
  • 聚焦爬虫
    • 建立在通用爬虫上,是聚焦在某一点进行数据抓取
  • 增量式爬虫
    • 检测网站中更新出来的数据,只会抓取最新的数据

反爬机制

  • 门户网站,可以制定相应的策略和相关技术手段来防止爬虫程序进行网站的数据获取

反反爬机制

  • 通过制定某些策略和相应技术手段进行破解网站的反爬,来进行一个数据的获取

robots.txt协议

规定了网站上什么内容可以进行爬取,也称作君子协议(就是可以不遵守,那就变成小人啦) !!可能会犯法哦

查看该协议也很简单

  • 在你输入网址的首页加上robots.txt就行了

网址栏

robots.txt

http、https

百度百科

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当

HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面

http

概念

  • 就是服务器和客户端进行数据交互的一种形式

常用请求头信息

  • User-Agent : 请求载体的身份标识
  • Connection: 请求完毕后,是断开连接还是保持连接

常用响应头信息

  • Content-Type :服务器响应回客户端的数据类型
https

表示安全的超文本传输协议

  • 数据加密

加密方式

  • 对称秘钥加密
    • 在传输给服务端时传输一个密文和秘钥,服务端接收后可以使用秘钥将密文打开,但是可能会被第三方拦截获取进行破解
  • 非对称秘钥加密
    • ·由服务端给客户端先传递一个公钥来进行密文的加密,然后再将密文发给服务端,由服务端的私钥进行解密,但是还是可能会被拦截修改
  • 证书秘钥加密(https 加密方式)
    • 和非对称类似,只是在公钥上进行了一个证书认证机构的签名,客户端收到带有这个签名的公钥就证明这个公钥是从服务端传过来的

Requests模块

官方定义

Python 内置了 requests 模块,该模块主要用来发 送 HTTP 请求,requests 模块比 urllib 模块更简洁

使用流程:

  • 指定一个url地址
  • 发起http请求
  • 获取响应数据
  • 持久化存储响应数据
第一个爬虫程序

进行搜狗主页爬取

# -*- encoding: utf-8 -*-
'''
@File    :   sougou.py
@Time    :   2022/08/03 12:26:10
@Author  :   linyx 
@Contact :   1710175673@qq.com
@Software:   VSCode
'''
# here put the import lib
import requests

if __name__ == '__main__':
    # 指定url
    url = 'https://www.sogou.com/'
    #发起请求 GET 返回一个响应对象
    response = requests.get(url=url)
    # 获取响应数据 以字符串的形式返回
    page = response.text
    #持久化存储
    with open('./sougou.html','w',encoding='utf-8') as fp:
        fp.write(page)
    print('爬取数据成功')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不敢懈怠伪装起来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值