爬虫基础之urllib库(代码演示)
以上述代码更好的写法如下:
from urllib import request, error
try:
response = request.urlopen(’ https://cuiqingcai.com/index.htm’)
except error.HTTPError as e:
print(e.reason, e.code, e.headers, sep=’\n’)
except error.URLError as e:
print(e . reason)
else:
print(’ Request Successfully')
这样就可以做到先捕获 HTTP Error ,获取它的错误状态码 、原因、 headers 等信息 。 如果不是
HTTP Error 异常,就会捕获 URLError 异常,输出错误原因 。 最后,用 else 来处理正常的逻辑 。 这是一
个较好的异常处理写法 。
有时候, reason 属性返回的不一定是字符串,也可能是一个对象 。 再看下面的实例:
import socket
import urllib.request
import urllib .error
try:
response = urllib.request.urlopen(’ https://WvM.baidu.com’, tim
except l」rllib . err口r.URLError as e:
print(type(e.reason))
if isinstance(e .reason, socket .tir陀out):
print(' TIME OUT')
这里我们直接设置超时时间来强制抛出 timeout 异常 。
运行结果如下:
<class ’ socket .timeout ’>
TIME OUT
可以发现, reason 属性的结果是 socket.timeout 类。 所以,这里我们可以用 is instance ()方法来
判断它的类型,作出更详细的异常判断。
的参数时,只需要调用该方法即可 。
该方法可以将内容转化为 URL 编码的格式 。 URL 中带有中文参数时,有时可能会导致乱码的问
题,此时用这个方法可以将巾文字符转化为 URL 编码,示例如下:
from urllib.parse import quote
keyword =’壁纸’
url =’ https://www.baidu.com/s?wd=’+ quote(keyword)
print(url)
这里我们声明了一个中文的搜索文字,然后用 quote ()方法对其进行 URL 编码,最后得到的结果
如下:
https://www.baidu.com/s?wd=%81%E7%BA%B8
爬虫基础之urllib库(代码演示)的更多相关文章
- 爬虫基础(1):urllib库
urllib库 urllib库是python中的一个基本网络请求库.用于模拟浏览器的行为,向指定服务器发送请求,并接收返回的数据. 在python3中所有的网络请求相关函数都集中在urllib.req ...
- 爬虫基础之urllib库
urllib库的基本使用 urlopen() # 导入urllib库 import urllib # 往指定url发送请求,返回一个响应对象 response = urllib.request.url ...
- 第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础
第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础 在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块 ...
- 第三百二十七节,web爬虫讲解2—urllib库爬虫—基础使用—超时设置—自动模拟http请求
第三百二十七节,web爬虫讲解2—urllib库爬虫 利用python系统自带的urllib库写简单爬虫 urlopen()获取一个URL的html源码read()读出html源码内容decode(& ...
- python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...
- 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解
第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...
- 第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理—用户代理和ip代理结合应用
第三百二十九节,web爬虫讲解2—urllib库爬虫—ip代理 使用IP代理 ProxyHandler()格式化IP,第一个参数,请求目标可能是http或者https,对应设置build_opener ...
- 第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理
第三百二十八节,web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术.设置用户代理 如果爬虫没有异常处理,那么爬行中一旦出现错误,程序将崩溃停止工作,有异常处理即使出现错误也能继续执 ...
- 爬虫入门之urllib库详解(二)
爬虫入门之urllib库详解(二) 1 urllib模块 urllib模块是一个运用于URL的包 urllib.request用于访问和读取URLS urllib.error包括了所有urllib.r ...
随机推荐
- 苹果手机的SB系列(1)听不懂人话的sir
写在前面,因手买错了(至于怎么买错了不解释)手机才买了一个苹果,价格不扉,但实在让人很不爽.记下了SB的点点. Sir听不懂人话,我让他查非洲安哥拉的时间,却屡次返回美国安哥拉洲的时间,很自恋.
- Spring Boot Jpa 的使用
Spring Boot Jpa 介绍 首先了解 Jpa 是什么? Jpa (Java Persistence API) 是 Sun 官方提出的 Java 持久化规范.它为 Java 开发人员提供了一种 ...
- week2
三元函数: a,b,c = 1,2,3 d = a if a>b else c print(d) #list 用法: lst = [1,2,3,4,5] print(lst[0:3]) prin ...
- 小白的python之路11/15 awk 77-78
awk -F指定分隔符 eg下图指定 : 为分隔符,$1 $4 NF表示以分隔符为表准,该行分了几段 $NF表示取最后一段 正则表达式 表示打印第一个开头的用户名awk -F: '/nolog ...
- 六、Linux的用户和组
1. 用户的管理 useradd 添加一个用户 useradd test 添加test用户 useradd test -d /home/t1 指定用户home目录 或者直接 adduser tes ...
- JAVAEE第三周
2.背景:看到Session时,感到很熟悉,毕竟涉及到过类似的编程,用得最多的地点就是保存客户端的信息和记录,比如说你已经登陆过某个网站,下次访问时不想要麻烦的重新登陆你就就可以使用这个机制.Sess ...
- 最大流 USTC1280
挺有意思的一题,最小路径之后最大流 /************************************************************** 作者:陈新 邮箱:cx2pirate ...
- DAY1 练习
要求:⽤户登陆(三次输错机会)且每次输错误时显示剩余错误次数(提示:使⽤字符串格式化), 如果三次用完了之后 问是否再试试 再给三次机会 如果不想试了说没有机会了. list = [{'usernam ...
- 开发工具IntelliJ IDEA的安装与操作
开发工具IntelliJ IDEA的安装与操作 1.1 开发工具概述 IDEA是一个专门针对Java的集成开发工具(IDE),它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就 ...
- [SCOI2003]字符串折叠
一道蛮好玩的区间DP...其实只要做好check...然后统计答案就好了...QAQ... 呆码: #include<iostream> #include<cstdio> #i ...