python 多功能下载网页

#下载网页
#具有功能:捕获异常,重试下载并设置用户代理
import urllib.request
import urllib.error
#下载网页
#wscp:默认用户代理 web scraping with python 缩写
def download(url, user_agent='wscp',num_retries=2):print('Downloading:',url) #打印下载路径headers={'USer-Agent':user_agent}request=urllib.request.Request(url,headers=headers)try:html=urllib.request.urlopen(request).read()except urllib.error.URLError as e:print('download error:',e.reason)html=Noneif num_retries>0:#下载遇到错误时尝试下载if hasattr(e,'code') and 500 <=e.code <600:#404 notfound 这种错误,说明网页不存在,故不需要重新下载print(user_agent)return download(url,user_agent,num_retries-1)return html
download('http://example.webscraping.com/')
download('http://httpstat.us/500')#测试错误500
# print(dir(urllib))
Downloading: http://example.webscraping.com/
Downloading: http://httpstat.us/500
download error: Internal Server Error
wscp
Downloading: http://httpstat.us/500
download error: Internal Server Error
wscp
Downloading: http://httpstat.us/500
download error: Internal Server Error

 

转载于:https://www.cnblogs.com/liangliangzz/p/10160482.html

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

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

相关文章

Nagios的安装

一、Nagios的安装 1. 准备软件包 在做安装之前确认要对该机器拥有root权限。 确认你安装好的CentOS系统上已经安装如下软件包再继续。 可以用yum命令来安装这些软件包&#xff0c;键入命令&#xff1a; yum install httpd yum install gcc yum install glibc glibc-common yum …

BZOJ4520 CQOI2016K远点对(KD-Tree+堆)

堆维护第k大&#xff0c;每个点KD-Tree上A*式查询较远点&#xff0c;跑得飞快&#xff0c;复杂度玄学。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> #include<qu…

windows media services 2008外网无法访问

配置好WMS2008之后&#xff0c;内网IP可以正常访问播放。但是用外网IP无法访问&#xff08;已经在路由器做好端口映射&#xff0c;RTSP的默认端口号为554&#xff09;。 后来百度了半天&#xff0c;终于在一个论坛找到了问题的所在。如果想用外网IP访问WMS2008&#xff0c;还需…

里式代换原则

子类型必须能够替换掉它们的父类型一个软件实体如果使用的是一个父类的话&#xff0c;那么一定适用于其子类&#xff0c;而且它察觉不出父类对象和子类对象的区别。也就是说&#xff0c;在软件里面&#xff0c;把父类都替换成它的子类&#xff0c;程序的行为没有任何变化。由于…

Mysql不用

Timeout error occurred trying to start MySQL Daemon.Starting MySQL: [FAILED] 可能是硬盘容量不足导致

Tomcat映射虚拟路径到指定磁盘(eclipse)

用WangEditor富文本编辑&#xff0c;上传图片的时候&#xff0c;本文主要记录一下Tomcat映射虚拟路径到指定磁盘&#xff0c;保存到指定路径中&#xff0c;且能实现页面预览。 在实现之前wangeditor的简单实用请参照博主小道仙的后宫&#xff0c;写的很详细&#xff1a;http://…

JVM内存简析

JAVA的JVM的内存可分为3个区&#xff1a;堆(heap)、栈(stack)和方法区(method) 堆区:1.存储的全部是对象&#xff0c;每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享&#xff0c;堆中不存放基本类型和对象引用&a…

毕业一年啦~

重回博客园 去年毕业,第一份工作,在海外做了一年项目管理... 今年8月份回国,准备开始考研... 同时开始投身区块链开发.,, 区块链改变世界.... 转载于:https://www.cnblogs.com/fudianheg/p/10180431.html

删除指定路径下指定天数之前的文件

echo off ::演示&#xff1a;删除指定路径下指定天数之前&#xff08;以文件的最后修改日期为准&#xff09;的文件。 ::如果演示结果无误&#xff0c;把del前面的echo去掉&#xff0c;即可实现真正删除。 ::本例需要Win2003/Vista/Win7系统自带的forfiles命令的支持 rem 指定待…

go struct结构

1.自定义数组类型 type dics struct {hello stringid intvalue float32} //申明变量 为定义的类型&#xff0c;传值var a dicsa.hello “go语言”a.id 2a.value 1.212.、自定义变量类型&#xff0c;赋给指针 func main() {type dics struct {hello stringid intvalue …

centos下离线安装mysql

卸载原有冲突的依赖包 rpm -e postfix rpm -e mariadb-libs 按顺序安装 rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm rpm -ivh mysql-com…

记一次es和mq的netty冲突

1.今天在服务里面加了 es 6.4的 依赖包后&#xff0c;在预发布测试时候出现了下列的问题 看了 半天&#xff0c;最后发现是 es的 jar包 和 mq的 netty包 有冲突。然后去idea的 jar包依赖里面查看&#xff0c;mq使用的 是 而es依赖的netty 是多个 不同的包&#xff0c; 而在依赖…

Windows平台下搭建自己的Git服务器

Gitblit 是一个纯 Java 库用来管理、查看和处理 Git 资料库&#xff0c;相当于 Git 的 Java 管理工具。 Gitblit 支持Linux操作系统&#xff0c;因此 Gitblit 需要java运行环境&#xff08;JRE&#xff09;。 如果公司要搭建自己的 Git 服务器&#xff0c;可以使用 Gitblit 这个…

保存 laravel model 而不更新 timestamps 的方法

$product Product::find(1); $product->view_count 1; $product->timestamps false; $product->save(); 重置数据库数据 update products set updated_at created_at;转载于:https://www.cnblogs.com/sgm4231/p/10189724.html

FileInputStreamTest

public class FileInputStreamTest { public static void main(String[] args) throws IOException { // 创建字节输入流 var fis new FileInputStream("FileInputStreamTest.java"); // 创建一个长度为1024的“竹筒” var…

FileOutputStreamTest

public class FileOutputStreamTest { public static void main(String[] args) { try ( // 创建字节输入流 var fis new FileInputStream("FileOutputStreamTest.java"); // 创建字节输出流 var …

bzoj3697 采药人的路径

题目描述 题解&#xff1a; 首先我们应该注意&#xff0c;这道题问的是&#xff1a; 对于点对(a,b)&#xff0c;存在点c在ab路径上&#xff0c;且a<->c和b<->c都是阴阳平衡的合法点对(a,b)有多少对。 因此这玩意是树链统计。 阴阳平衡就是$1(-1)0$; 用点分治搞一搞…

Java输入/输出流体系中常用的流分类

java输入/输出流体系中常用的流分类分类字节输入流字节输出流字符输入流字符输出流抽象基类InputStreamOutputStreamReaderWriter访问文件FileInputStreamFileOutputStreamFileReaderFileWriter访问数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWrit…

Log4j简单记录

### 设置### log4j.rootLogger debug,stdout,D,E### 输出信息到控制抬 ### log4j.appender.stdout org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target System.out log4j.appender.stdout.layout org.apache.log4j.PatternLayout log4j.appender.stdout.layou…

URLConnection和HttpURLConnection类

配置URLConnection 在实际建立连接之前&#xff0c;我们可以配置影响客户端和服务器之间正在进行的通信的各个方面&#xff0c;例如超时&#xff0c;缓存&#xff0c;HTTP请求方法等。 该URLConnection的类提供了配置连接下面的方法&#xff1a; setConnectTimeout&#xff0…