news 2026/4/3 5:06:31

刚认识爬虫

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
刚认识爬虫

1.认识爬虫

通用爬虫:

网络请求过程:

HTTP & HTTPS:

客户端发起一个HTTP请求会携带请求的参数和报头,请求报文是严格规范的。HTTP请求主要分为GET,POST两类。

经过三次握手四次挥手建立起稳定连接后,服务端返回完整的数据,包含状态行,响应正文等。常见的状态码有200,302,403,404,503等。

GET & POST :

GET请求 :

GET是从服务器上获取指定页面信息,GET请求参数都显示在URL上。"Get"请求的参数是URL的一部分。

POST请求 :

POST是向服务器提交数据并获取页面信息。POST请求参数在请求体当中,消息长度没有限制而且以隐式的方式进行发送,"POST"请求的参数不在URL中,而在请求体中。

常用请求报文:

  • Host:对应网址URL中的Web名称和端口号,用于指定被请求资源的Internet主机和端口号,通常属于URL的Host部分。

  • User-Agent:标识客户端身份的名称,通常页面会根据不同的User-Agent信息自动做出适配,甚至返回不同的响应内容。

  • Referer:表明产生请求的页面来自于哪个URL,用户是从该Referer页面访问到当前请求的页面。这个属性可以用来跟踪Web请求来自哪个页面,是从什么网站来的等。

  • Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现模拟登录。

2.库与开发工具:

pip install requests
2.1 基本爬虫的过程:

1.准备起始URL (准备UA伪装)——>URL

2.起始的URL发送请求(一般分为get请求和post请求)——>requests

3.获取响应(返回HTML类型数据以文本形式处理)——>响应体

4.数据提取(常见的有re,xpath,bs4)——>数据提取方式

requests请求:
GET请求传参方式:
    1. url 直接传参

      get_url="https://httpbin.org/get?id=123"
    1. 通过 params 参数传参

      params={"gender":"nan","name":"dongli"}response=requests.get(url=get_url,params=params)
POST请求传参方式:

通过data进行表单提交

post_url="https://httpbin.org/post"data={"user":"dongli""password":"123"}response=requests.post(url=post—_url,data=data)

requests响应 :

response.encoding='utf-8'print(response.text)#响应内容的字符串形式print(type(response.text))#strprint(response.content)#响应内容的二进制形式print(type(response.content))#bytesprint(response.status_code)#状态码print(response.request)#requests对象 请求对象print(response.request.headers)#请求头print(response.request.url)#请求地址 也就是上面的print(response.url)#响应地址 获取重定向之后的地/址cookies=response.cookies#获取响应之后的cookiesprint(requests.utils.dict_from_cookiejar(cookies))

小案例:

伪装UA发起请求:

# 导入爬虫库importrequests headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/116.0.0.0 Safari/537.36",}response=requests.get("https://httpbin.org/get",headers=headers)print(response)# 获取响应体内容text=response.textprint(text)

带参数的post请求:

importrequests url="https://www.baidu.com"headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/116.0.0.0 Safari/537.36",}data={"user":"zhangsan","password":"qwe123"}response=requests.post(url,headers=headers,data=data)print(response.text)print(response.encoding)print(response.content)print(response.status_code)print(response.request)print(response.request.headers)print(response.url)print(response.cookies)print(requests.utils.dict_from_cookiejar(response.cookies))

带参数的get请求:

importrequests# get请求在url传递参数# url = "https://httpbin.org/get?a=1&b=2"url="https://httpbin.org/get"params={"a":1,"b":2}headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/116.0.0.0 Safari/537.36",}# response = requests.get(url, headers=headers)response=requests.get(url,headers=headers,params=params)print(response.text)

get请求基本使用:

importrequests response=requests.get("https://httpbin.org/get")#获取HTML网页的主要方法,对应于HTTP的GET。print(response)text=response.text#http响应内容的 字符串(str) 形式,请求url对应的页面内容print(text)

port requests

response = requests.get(“https://httpbin.org/get”) #获取HTML网页的主要方法,对应于HTTP的GET。
print(response)

text = response.text #http响应内容的 字符串(str) 形式,请求url对应的页面内容
print(text)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/30 23:51:24

Shell编程实例来入门【20260121】简洁、优雅版-实例扩容版v1

文章目录 实例1:基础输出与变量定义(扩展为2例) 例1-1:基础变量与字符串拼接(原核心) 例1-2:变量默认值与空值处理(扩展) 实例2:读取用户输入(扩展为2例) 例2-1:基础输入与非空校验(原核心) 例2-2:密码输入(无回显)与超时限制(扩展) 实例3:文件类型/属性判…

作者头像 李华
网站建设 2026/4/2 1:30:07

TegraRcmGUI入门指南:5个步骤轻松掌握Switch系统注入

TegraRcmGUI入门指南:5个步骤轻松掌握Switch系统注入 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Nintendo Switch设计…

作者头像 李华
网站建设 2026/4/1 18:24:38

游戏串流革命:Sunshine平台深度体验指南

游戏串流革命:Sunshine平台深度体验指南 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器,支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 在数字…

作者头像 李华
网站建设 2026/4/1 10:57:35

八大网盘直链下载完整指南:如何免费获取高速下载链接

八大网盘直链下载完整指南:如何免费获取高速下载链接 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&#…

作者头像 李华
网站建设 2026/4/1 16:29:45

抖音直播回放一键下载:3分钟学会永久保存精彩内容

抖音直播回放一键下载:3分钟学会永久保存精彩内容 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为错过精彩抖音直播而懊恼?想要收藏主播的珍贵内容却苦于没有合适工具&#xff…

作者头像 李华
网站建设 2026/3/11 15:11:35

手机号快速定位QQ号:5分钟搭建个人查询系统的完整指南

手机号快速定位QQ号:5分钟搭建个人查询系统的完整指南 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 当你急需验证某个手机号是否绑定QQ,或者找回遗忘已久的QQ账号时,是否曾为繁琐的登录验证流程…

作者头像 李华