Python进阶——网络爬虫常见知识

前言

在网络高度发达的今日,爬虫在社会各行各业的应用及其广泛,网络爬虫的核心思想是模拟人类使用浏览器访问网页的过程,通过发送HTTP请求获取网页内容,并从中提取有用的信息。网络爬虫通常需要借助于一些第三方库来实现,比如Python中的requests库和BeautifulSoup库等。

网络爬虫应用非常广泛,比如搜索引擎、电商价格监控、舆情分析等领域都有着重要作用。但是,网络爬虫的使用也存在一些问题,比如隐私泄露、版权侵犯等问题。因此,在使用网络爬虫时一定要遵守法律法规,尊重他人合法权益。本文将详细介绍Python爬虫的知识。供各位学习
Fight!!(o-)~'‘☆ミ☆ミ
Fight!!(o-)~’'☆ミ☆ミ在这里插入图片描述

一、爬虫的定义

爬虫的全名叫网络爬虫,简称爬虫。别名网络机器人,网络蜘蛛等等称呼。爬虫就好像一个探测机器,它的基本操作就是模拟人的行为去各个网站进行浏览,将控制人需要的数据从网站运输到终端.

二、学习步骤

1.爬虫的合法性

爬虫本身不违法,但是要注意以下三点
①.在使用时要遵守君子协议(robots协议)
②.不能造成对方服务器瘫痪
③.不能非法获利(违反著作权法的行为)

2.爬虫的HTTP协议

定义:超文本传输协议 (HTTP)
超级文本(超越文本限制或者超链接[不属于文本之内的,例如href=“超链接”])
。图片、音乐、视频等
。可以传递任意格式的数据
。传输HTTP协议数据基于TCP传输协议。发送数据需要先建立连接
作用:规定了浏览器和web服务器通信数据的格式,也就是访问web服务器需要http协议
以下是代码实例:

import requests

url = 'https://www.example.com/'

response = requests.get(url)

print(response.text)

#在这个示例中,我们定义了一个名为“url”的变量,该变量存储待爬取网站的URL。然后使用requests库发送一个GET请求并将响应存储在“response”变量中。最后,我们以文本格式打印响应内容(即网页源代码)。




3.爬虫常返回的状态码

1xx 信息响应代码:
100:继续
101:协议切换

2xx 成功响应代码:
200:成功
201:已创建
202:已接受
204:无内容

3xx 重定向响应代码:
300:多种选择
301:永久移动
302:临时移动
303:查看其他位置
304:未修改
307:临时重定向

4xx 客户端错误响应代码:
400:错误的请求
401:未授权
403:禁止访问
404:未找到
405:请求方法不允许
408:请求超时
409:冲突
410:永久删除
415:不支持的媒体类型

5xx 服务器错误响应代码:
500:内部服务器错误
502:错误网关
503:服务不可用
504:网关超时

4.cookie与session id

定义:Cookie和Session ID都是Web开发中用来存储和跟踪用户信息的重要工具。Cookie是由服务器发送到浏览器并存储在本地计算机上的小文件,以便下次用户访问该网站时能够读取该信息。而Session ID则是一种服务端生成的唯一标识符,用于跟踪用户在网站上的活动。

Cookie常常用于记录有关页面布局、颜色方案、语言首选项等用户个性化设置,而Session ID通常用于存储与用户相关的数据,比如购物车中商品信息、用户登录状态等。

以下是代码实例:
①、使用Cookie

from flask import Flask, request, make_response

app = Flask(__name__)

@app.route('/')
def index():
    # 从Cookie中读取用户ID
    user_id = request.cookies.get('user_id')
    if not user_id:
        # 如果没有用户ID,则使用随机数生成一个
        user_id = str(random.randint(1, 1000000))
    # 在响应中设置Cookie
    resp = make_response(f'Hello, {user_id}!')
    resp.set_cookie('user_id', user_id)
    return resp

if __name__ == '__main__':
    app.run()

②、使用Session ID

from flask import Flask, request, session

app = Flask(__name__)
# 设置Session密钥
app.secret_key = 'my_secret_key'

@app.route('/')
def index():
    # 从Session中读取用户ID
    user_id = session.get('user_id')
    if not user_id:
        # 如果没有用户ID,则使用随机数生成一个
        user_id = str(random.randint(1, 1000000))
        # 在Session中存储用户ID
        session['user_id'] = user_id
    return f'Hello, {user_id}!'

if __name__ == '__main__':
    app.run()

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Rose北港

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

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

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

打赏作者

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

抵扣说明:

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

余额充值