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

尚硅谷爬虫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——勾选正则表达式——选择第一个——选择第一个——全部替换


http://www.kler.cn/a/549251.html

相关文章:

  • leetcode:627. 变更性别(SQL解法)
  • 2025.2.13 Android Studio下载安装配置教程(详细版)
  • 1-10 github注册仓库
  • React VS Vue
  • 【Qt Qml】QML与C++交互
  • ubuntu20.04连接airpods pro2
  • 【Python】01-基础
  • SQL代码规范
  • 国内情智机器人:从“通情达理”到温暖陪伴的跨越
  • 基于51单片机的的鸡笼补光和恒温系统的设计与实现(源程序+Protues仿真+电路图+元件清单+器件手册)
  • Express 路由详解
  • 人工智能之目标追踪DeepSort源码解读(yolov5目标检测,代价矩阵,余弦相似度,马氏距离,匹配与预测更新)
  • 代码随想录算法【Day47】
  • Kimi k1.5:继Deepseek R1 后多模态 AI 的新标杆
  • 构建 LVS-DR 群集
  • gitlab Webhook 配置jenkins时“触发远程构建 (例如,使用脚本)”报错
  • 单位切换且后换算得方法
  • 前端知识速记:BFC与IFC
  • C/C++程序的内存是如何开辟的?
  • 【C++笔记】C++11的深度剖析(一)