当前位置: 首页 > news >正文

尚硅谷爬虫note007

一、 urllib—异常

1. urllib.error.HTTPError

2. urllib.error.URLError

# _*_ coding : utf-8 _*_
# @Time : 2025/2/14 11:33
# @Author : 20250206-里奥
# @File : demo26_异常
# @Project : PythonProject10-14
import urllib.request
import urllib.error

from demo17_qingqiuduixaingdedingzhi import request

# https://blog.csdn.net/CSDNy666999/article/details/145624779?spm=1001.2014.3001.5501

# url
# url = "https://blog.csdn.net/qq_71745595/article/details/143988362"
# 错误网址:测试异常用
# url = "https://blog.csdn.net/qq_71745595/article/details/143988362111"

# 测试第2种异常,域名错/参数错时,报错
url = "http://hahaha111.com"
#headers
headers = {
        "User-Agent":
            "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0"
    }
# 请求对象定制
import urllib.request
#捕获异常
try:
    request = urllib.request.Request(url=url,headers=headers)

    #模拟浏览器向服务器发送请求
    response = urllib.request.urlopen(request)

    # 响应数据
    content = response.read().decode('utf-8')

    # 打印
    print(content)

    #导入urllib.error
    # 第1种异常
except urllib.error.HTTPError:
    print("系统正在升级...")

    # 第2种异常;主机地址错误或参数错误时,报错
except urllib.error.URLError:
    print("系统仍在升级...")

二、 urllib—cookie登录

# _*_ coding : utf-8 _*_
# @Time : 2025/2/14 12:49
# @Author : 20250206-里奥
# @File : demo26_微博的cookie登录
# @Project : PythonProject10-14



# 访问不成功。    原因:请求头信息不够

# 个人信息页码是utf-8格式,但是报了编码错误。  原因:跳转到登录页面,并未进入个人信息页面(登录页面不是utf-8,所以报错)

import urllib.request

from demo17_qingqiuduixaingdedingzhi import request, response

# 应用场景:采集数据时,绕过登录,进入某个页面

# url
url = "https://weibo.com/u/5591107118"


#headers
    headers = {
# cookie中携带着登录信息
# 如果有登录后的cookie,就可以进入任何页面

#referer 防盗链; 判断当前路径,是不是由上一个进来的
# 一般情况下,做图片的防盗链
    }


# 请求对象定制
request = urllib.request.Request(url=url,headers=headers)

# 模拟浏览器向服务器发送请求
response = response.request.urlopen(request)

# 获取响应数据
content = response.read().decode('utf-8')

# 将数据存到本地
with open('微博_' + '.html','w',encoding='utf-8') as fp:
    fp.write(content)

# 批量修改请求头信息的格式
# 工具:editplus。  使用:文件——标准文档——CTRL + A——CTRL + H——勾选正则表达式——选择第一个——选择第一个——全部替换

相关文章:

  • Ubuntu 上安装和配置 Nexus Repository Manager
  • React函数组件和类组件
  • DeepSeek的自动化能力如何
  • Ubuntu 24.04 上安装 Nginx
  • 【BUG】Ubuntu|有nvcc,没有nvidia-smi指令,找不到nvidia-driver安装包
  • 香港服务器如何解决视频流播放中的延迟问题?
  • 共用poetry和conda的方法
  • 力扣hot100第三天
  • STM32——HAL库开发笔记19(串口中断接收实验)(参考来源:b站铁头山羊)
  • 2025 西湖论剑wp
  • sql调优之数据库开发规范
  • Sprinig源码解析
  • 3D模型可视化引擎HOOPS Visualize在桌面端的支持有哪些特点?
  • 【LINUX】常用指令查询
  • 第五章 起航10 金字塔原理
  • ollama部署deepseek实操记录
  • 设备智能AI语音交互,ESP32-S3芯片方案应用,物联网无线联动控制
  • Next.js【详解】CSS 样式方案
  • C#搜索算法大冒险:在数据海洋里找宝藏
  • 什么是神经网络?
  • 产假工资是谁出?女职工生育能领多少生育津贴?解答来了
  • 2024年境内酒店住宿行业指标同比下滑:酒店行业传统增长模式面临挑战
  • 解放日报:“北斗七星”列阵,AI群星闪耀
  • 耶路撒冷发生山火,以防长宣布紧急状态
  • 证监会:坚决拥护党中央对王建军进行纪律审查和监察调查决定
  • 揭秘神舟十九号返回舱“软着陆”关键:4台发动机10毫秒内同时点火