爬虫原理(GET\POST)

本文解析了静态与动态页面的区别,重点介绍了动态页面数据抓取的方法,包括GET与POST请求的区别,以及如何通过抓包获取JSON、JS、XML等数据格式。同时,详细讲解了Cookie的使用方式,包括直接保存Cookie和模拟登录过程。

静态页面:数据保存在网页的HTML中
动态页面:数据不直接保存在HTML中,而是服务器后台单独传输数据,再渲染到页面中。
动态页面获取数据,必须抓包,找出浏览器和服务器之间传递的数据(json、js、xml)

GET: 可能会有查询字符串,但是一定没有表单数据(查询字符串会显示在url后面)
POST: 可能会有查询字符串,但是一定有表单数据(表单数据保存在请求体里发送)

匹配:""" ^(.?):\s(.?)$ “”"
替换:""" “\1” : “\2”, “”"
Sublime Text: 选中部分向下多选, ctrl + d

Cookie的两种用法:

  1. (最常用最简单)直接手动登录网站并保存cookie,用于程序的请求报头中
  2. (不常用很复杂)模拟登录:
    -1. 先分析登录页面,抓包获取需要的登录参数
    -2. 发送登录页面的get请求,提取登录参数
    -3. 附带登录参数 和 账户密码,发送post登录请求,如果登录成功则记录cookie
    -4. 附带这个登录后的cookie,发送其他需要登录才能访问的页面

response = urllib2.urlopen()
response.read()# 获取网页原始编码字符串,也可以获取图片音视频等字节数据

import requests

response = requests.get()
response.content # 获取网页原始编码字符串,也可以获取图片音视频等字节数据
response.text # 获取网页Unicode编码字符串

response.encoding = “utf-8” # 手动指定网页的编码,如果不指定则靠猜
response.text # 根据encoding来解码,获取网页Unicode编码字符串

### Python 爬虫入门教程:GETPOST 请求使用方法 #### 安装必要库 为了能够顺利地发送 HTTP 请求并处理响应,在开始之前需要安装 `requests` 库。可以通过 pip 工具轻松完成这一操作[^1]。 ```bash pip install requests ``` #### 发送 GET 请求 当想要从 Web 服务获取资源,通常会采用 GET 方法。下面是一个简单的例子展示如何利用 `requests.get()` 函数来访问指定网址,并打印出页面的内容: ```python import requests response = requests.get('https://example.com') print(response.text) ``` 此代码片段展示了基本的 GET 请求实现方式。如果目标 URL 需要参数,则可以在调用 get()候传递 params 参数作为字典形式传入查询字符串[^4]。 #### 构建 POST 请求 对于提交表单或其他类型的写入操作来说,POST 更加合适。这里给出一段示范性的代码说明怎样构建带有 payload 数据体的 POST 请求: ```python payload = {'key1': 'value1', 'key2': 'value2'} headers = { "Content-Type": "application/json", } response = requests.post("http://httpbin.org/post", json=payload, headers=headers) if response.status_code == 200: print("Request successful!") else: print(f"Failed with status code {response.status_code}") ``` 上述实例中定义了一个名为 `payload` 的变量存储待发送的信息;同设置了自定义头部信息以便告知服务器所接收的是 JSON 类型的数据。最后检查状态码确认请求是否成功执行[^2]。 另外也可以借助于标准库中的 `urllib.request.Request` 来发起类似的 POST 请求,不过相比而言 `requests` 提供了更为简洁易懂的方式来进行网络通信[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值