爬虫2:web请求与http

1.服务器渲染 :在服务器那边直接把数据和html整合在一起,统一返回给浏览器

2.客户端渲染 :请求网页时候服务器只返回html骨架,客户端再次请求数据时候再返回数据,进行数据展示(在页面源代码中看不到数据)

熟悉使用浏览器抓包工具F12

请求:

请求航:请求方式get/post, 请求url地址,协议

请求头:放一些服务器要使用的附加信息

请求体:一般放一些请求参数

响应:

状态行:协议,状态码 200,404,500,419被发现了,

响应头:放一些客户端要使用的一些附加信息

响应体:服务器返回的真正客户端要用的内容(HTML,json)等

请求头中最常见的一些重要内容(爬虫需要):

  1. user-agent:请求载体的身份标识(用啥发送的骑牛)
  2. Referer:防盗链(这次请求是从哪个页面来的,反爬用到)
  3. cookie:本地字符串数据信息(用户登录信息,反爬的token)
    响应头中一些重要的内容:
    1.cookie:本地字符串数据信息(用户登录信息,反爬的token)
    2.各种神奇的莫名其妙的字符串(这个需要经验了,一般都是token字样,防止各种攻击和反爬)

请求方式:

get: 显式

post:隐式

python 复制代码
"""
下载在reqyests
"""

import requests

# query = input("输")

url = 'https://www.sogou.com/web?query=周杰伦'

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0",
}

resp = requests.get(url, headers=headers,verify=False)

# print(resp)
# print(resp.text)

url = 'https://fanyi.baidu.com/sug'

dat = {
    "kw": 'hello'
}
# 发送post
resp = requests.post(url, data=dat, verify=False)
# print(resp.text)
# 将服务器返回的json字符串转换成字典
# print(resp.json())


# 爬取指定的
url = 'https://movie.douban.com/j/chart/top_list'

# 重新封装参数
param = {
"type": "11",
"interval_id": "100:90",
"action": "",
"start": 0,
"limit": 20,
}

resp = requests.get(url, params=param,headers=headers,verify=False)

print(resp.json())

resp.close() # 访问次数可能被墙,以为和服务器连接数过多,所以需要关闭连接
相关推荐
Ramble_Naylor13 小时前
Rust深度解读:高性能 Web 网关与 Axum 架构剖析
前端·架构·rust
程序员飞哥13 小时前
AI 编程额度怎么用才不浪费?
java·前端·后端
柳杉13 小时前
用 Codex 魔改卡神开源的 AIHOT,我做了个 3D 技术雷达
前端·aigc
王亚博_Abel13 小时前
AI 编程时代怎么选前端框架?同一个应用让 Agent 用 12 种框架各写 5 遍,我整理出这套选型方法
前端·人工智能·前端框架
不在逃避q13 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
前端·chrome·安全
砚凝霜13 小时前
保姆级 | CTF Lemon:禁用右键/F12 怎么破?查看源码 + HTML 注释拿 flag
前端·html
IT_陈寒13 小时前
Vite开发实战:从入门到精通
前端·人工智能·后端
普通人613 小时前
Web端3D模型加载实战指南_Vue3_uni-app_HTML
前端·javascript·uni-app·html
志尊宝13 小时前
AI原生前端开发(043):AI辅助的样式生成(Tailwind CSS)
前端·css·ai-native
king王一帅13 小时前
QuireKit 编辑器的 AI-Native 是如何设计的?谈谈我对真正 AI-Native 的理解
前端·开源·agent