爬虫01

爬虫

通过编写程序来获取互联网资源


需求:用程序模拟浏览器,输入一个网址,从该网址中获取到资源或者内容

python搞定以上需求

  1. 导包 from urllib.request import urlopen

    2.写url

  2. urlopen这个网址

  3. 返回得到内容

web请求过程剖析

两种渲染方式:

  • 服务器渲染: 在服务器那边直接把数据和html整合一起,统一返回给浏览器(即服务器收到的一定是带有内容的html)(数据能在源代码中找到的就是服务器渲染)

  • 客户端渲染: 所用的浏览器即为客户端,第一次请求只要了一个html骨架,第二次请求拿到数据,然后进行数据展示。在页面源代码中看不到数据

    客户端向服务器发送网页请求,服务器会返回一个html骨架,就是只给了一个网页,里面没有内容,这时候客户端再次请求要数据,服务器返回数据,然后客户端接收数据后将该数据与骨架拼接。

HTTP协议

超文本传输协议,直白点,传输的就是网页页面源代码,浏览器和服务器之间的数据交互遵守的就是HTTP协议

HTTP在发送和得到数据分为请求和响应两大块

请求:1.请求行 (请求方式(get/post)、请求URL地址、协议)

  1. 请求头 (放一些服务器要使用的附加信息)
  2. 请求体(放请求参数)

响应: 1.状态行(协议、状态码(200 302 500 404等))

2.响应头 (放一些客户端要使用的附加信息)

3.响应体(服务器返回的真正客户端要用的内容(html、json)等)

写爬虫格外注意请求头和响应头,这两个部分一般隐含较为重要的内容

请求头中常见重要内容:

  • User-Agent :请求载体的身份标识(浏览器,用什么浏览器发送的请求)
  • Refer:防盗链(这次请求是从哪个页面来的,反爬会用到)
  • cookie:本地字符串数据信息(用户登录信息,反爬的token)

响应头中常见重要内容:

  • cookie:本地字符串数据信息(用户登录信息,反爬的token)
  • 各种神奇的莫名其妙的字符串(一般都是token字样,放置各种攻击和反爬)

请求方式:

GET 显示提交: 查询东西用get居多 在浏览器地址栏里头的都是get方式提交的

POST 隐示提交:对服务器内容增加修改,上传一些内容用post居多


# 入门超小爬虫
from urllib.request import urlopen

url = "http://www.baidu.com"
response = urlopen(url)


with open("mybaidu.html", mode="w", encoding="utf-8") as f:
    f.write(response.read().decode("utf-8"))  # decode解码 读取到网页的页面源代码
print("over")
posted @   凹尾狸花鱼  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示