Python爬虫--Urllib基础

1. urlretrieve

Urllib 库也是类似 request 库,用来解析html的

首先讲 urlretrieve 子模块

这个模块的作用是将网页下载到本地

语法: urlretrieve(网址,本地地址)

例如:

这样就可以了,他会将百度网页下载到本地D盘下,

不过图片那些可能下载不到,因为他做了防盗取


import urllib.requesturl = 'https://www.baidu.com/'urllib.request.urlretrieve(url,'D:/')

2. urlcleanup

urlcleanup 用来清除爬虫产生的一些缓存及其他一些杂七杂八的东西

他通常在请求网页的时候使用,

运行时不会有任何提示

例:


import urllib.requesturl = 'https://www.baidu.com/'urllib.request.urlretrieve(url,'D:/')urllib.request.urlcleanup()

3. info()

info() 用来获取网页的简介信息

例:


import urllib.requesturl = 'https://www.baidu.com/'data = urllib.request.urlopen(url)urllib.request.urlcleanup()print(data.info())

效果图:

images


4. getcode()

getcode() 获取状态码


import urllib.requesturl = 'https://www.baidu.com/'data = urllib.request.urlopen(url)urllib.request.urlcleanup()print(data.getcode())>>> 输出 200

5. geturl()

geturl() 获取当前访问网页的url地址

例:


import urllib.requesturl = 'https://www.baidu.com/'data = urllib.request.urlopen(url)urllib.request.urlcleanup()print(data.geturl())>>> 输出 https://www.baidu.com/

6. 超时设置

在我们访问网页的时候,可能会因为各种原因导致访问不成功,

这个原因可能是对方服务器反应慢,或者网速慢之类的问题,

那么我们就需要给代码更多的判断时间,

如果超过这个时间,那么我们就可以认为网页无法访问。

这里我们使用到 timeout() 函数来设置请求时间

它通常会配合 try except 函数一起使用

例:

设置超时时间为 5秒

len() 函数为获取返回长度,

decode() 是解码的意思,有些时候因为编码不同,不解码的话会出错,

第二个参数 ignore ,表示解码失败也强行解码


import urllib.requesttry:url = 'https://www.baidu.com/'data = urllib.request.urlopen(url,timeout=5)urllib.request.urlcleanup() # 清除缓存print(len(data.read().decode("utf-8","ignore")))except Exception as error:print("无法访问 " + str(error))>>> 输出 227

Urllib基础,有些时候没有 request模块方便

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/7557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么给切面增加开关

为切面添加开关功能,可以在运行时控制是否启用切面逻辑,这对于调试、性能优化或特定场景的灵活控制非常有用。下面是一个基于Spring AOP和配置属性实现的简单示例,展示了如何为切面逻辑添加开关。 步骤 1: 添加配置属性 首先,定…

【管理咨询宝藏93】大型制造集团数字化转型设计方案

【管理咨询宝藏93】大型制造集团数字化转型设计方案 【格式】PDF版本 【关键词】国际咨询公司、制造型企业转型、数字化转型 【核心观点】 - 235页大型制造型集团数字化转型方案设计!细节非常详尽,图表丰富! - 系统架构必须采用成熟、具有国…

Kafka应用Demo:按主题订阅消费消息

安装环境 Kafka安装可参考官方网站的指导(https://kafka.apache.org/quickstart), 按步骤解压压缩包,修改配置。然后再启动zookeeper和kafka-server即可。 需要注意的一点:如果是在VMware虚拟机上启动的kafka, 需要修改一下server.properties配置文件&am…

STM32G0存储器和总线架构

文章目录 前言一、系统架构二、存储器构成三、存储器地址映射四、存储器边界地址五、外设寄存器边界地址 前言 此文章是STM32G0 MCU的学习记录,并非权威,请谨慎参考。 STM32G0主流微控制器基于工作频率可达64 MHz的高性能Arm Cortex-M0 32位RISC内核。该…

观测云 VS ELK:谁是日志监控的王者?

前言 作为 IT 信息系统运行状态感知和故障分析的重要手段,日志在行业兴起之初便为运维和开发环节所广泛应用。当应用和系统发生故障或出现问题时,日志数据成为了排查和诊断问题的重要依据。通过分析日志,开发人员和运维人员可以了解系统的运…

(python读取目标检测PASCAL VOC数据集,将图像采用边缘填充的方法缩放到相应大小(例如640x640),并修改对应的xml文件

python读取目标检测PASCAL VOC数据集,将图像采用边缘填充的方法缩放到相应大小(例如640x640),并修改对应的xml文件 单个文件处理批处理脚本 单个文件处理 import cv2 import os import xml.etree.ElementTree as ETdef resize_im…

苹果审核遇到的问题总结

问题一 Guideline 2.3.3 - Performance - Accurate Metadata 2.3.3 Screenshots should show the app in use, and not merely the title art, login page, or splash screen. They may also include text and image overlays (e.g. to demonstrate input mechanisms, such a…

java JMH 学习

JMH 是什么? JMH(Java Microbenchmark Harness)是一款专用于代码微基准测试的工具集,其主要聚焦于方法层面的基准测试,精度可达纳秒级别。此工具由 Oracle 内部负责实现 JIT 的杰出人士编写,他们对 JIT 及…

#LLM入门 | langchain | RAG # 4.1 简介_使用 LangChain 访问个人数据

课程介绍:《第四部分:使用 LangChain 访问个人数据》是基于LangChain创始人Harrison Chase与Deeplearning.ai合作开发的课程,旨在教授如何通过LangChain框架使语言模型(LLM)访问和应用用户个人数据。背景说明&#xff…

PD芯片取电:电子设备的动力之源6020 6500

随着现代电子技术的迅猛发展,电源管理技术在各种电子设备中扮演着越来越重要的角色。特别是近年来,随着USB Power Delivery(PD)技术的普及,PD芯片取电技术因其高效、灵活和安全的特点,成为了电子设备充电和…

java项目中如何更优雅的处理空值

在Java项目中,优雅地处理空值(null)是一个重要的实践,因为它有助于提高代码的健壮性和可读性。以下是一些建议,帮助你更优雅地处理空值: 使用Optional类(Java 8及以上) Java 8引入了…

Vue + Element-plus 快速入门

1. 构建项目 npm init vuelatest # 可选项一路回车,使用默认NO,按提示执行3条命令 cd 项目名 npm install npm run dev 2. 下载element-plus npm install element-plus --save 3.替换main.js import { createApp } from vue import ElementPlus from element-plu…

相关性分析

目录 1.交叉功率谱 2. 相关系数 1.交叉功率谱 % 生成两个信号 t 0:0.001:100; x sin(2*pi*1*t)sin(2*pi*2*t); y sin(2*pi*t )sin(2*pi*2*t); % 计算交叉功率谱密度 [Pxy, F] cpsd(x, y, [], [], [], 1/(t(2)-t(1))); % 使用正确的采样频率 % 绘制交叉功率谱密度图 …

ISIS的基本配置

1.IS-IS协议的基本配置(1) 2.IS-IS协议的基本配置(2) 3.IS-IS协议的基本配置(3) 4.案例:IS-IS配置 R1的配置如下: [AR1czy]isis 1 [AR1czy-isis-1]is-level level-1 [AR1czy-isis-…

电磁兼容(EMC):静电放电(ESD)基本原理

目录 1. 静电学简史 2. 摩擦生电原理 3. 总结 静电放电是电磁兼容(EMC)系列里最让人头疼的问题之一。无论是现在还是未来,静电问题肯定是做产品设计需要重点考虑的问题。这里来聊聊关于静电放电的一些发展历程和基本原理。 1. 静电学简史…

公开地图服务

XYZ参考: http://openwhatevermap.xyz/ 高德参考:https://blog.csdn.net/ldlzhy1984/article/details/81015180 https://blog.csdn.net/fredricen/article/details/77189453 高德矢量图:https://webrd02.is.autonavi.com/appmaptile?langzh_cn&size…

市面上好用的AI工具有哪些?

市面上的AI工具数不胜数,选择合适自己的AI工具则需要考虑自己的需求,看是否能满足的使用需求。那么市面上又有哪些好用的AI工具呢? 泰迪智能科技拥有简单易用的大数据挖掘建模平台,能够让数据创造更大的价值。 功能板块&…

技术干货:单体,SOA,微服务,分布式,集群架构详解

理解这些架构概念对于软件工程师至关重要。下面我会简要介绍这些架构,并提供一些示例代码来说明它们的实现方式。 单体架构: 在单体架构中,整个应用程序被构建为一个单独的、紧密耦合的单元。通常使用传统的三层架构:表示层、业务…

C++实现二叉搜索树(模型)

目录 1.二叉搜索树的概念 2.二叉搜索树的实现 2.1总体代码预览 2.2各个函数实现原理 链表结构体 二叉搜索树的成员变量 二叉搜索树的插入 二叉搜索树的查找 二叉搜索树的遍历 二叉搜索树的删除 1.二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一棵空树&#…

算法训练营第63天|LeetCode 84.柱状图中最大的矩形

完结&#xff01;撒花&#xff01; LeetCode 84.柱状图中最大的矩形 题目链接&#xff1a; LeetCode 84.柱状图中最大的矩形 代码&#xff1a; class Solution { public:int largestRectangleArea(vector<int>& heights) {heights.insert(heights.begin(),0);he…