Python爬虫(2):urllib库
爬虫常用库urllib
注:运行环境为PyCharm
urllib是Python3内置的HTTP请求库
urllib.request:请求模块
urllib.error:异常处理模块
urllib.parse:url解析模块
urllib.robotparse:robot.txt解析模块
1、urllib.request.urlopen(url, data=None, [timeout]*, cafile=None, cadefault=False,content=None)
url:请求网址
data:请求时需要发送的数据
timeout:超时设置
from urllib import request # 请求获取网页返回内容
response = request.urlopen('https://www.toutiao.com/')
# 获取网页返回内容
print(response.read().decode('utf-8'))
# 获取状态码
print(response.status)
# 获取请求头
print(response.getheaders())
# 对请求头进行遍历
for k, v in response.getheaders():
print(k, '=', v)
当爬去一些反爬网站时,需要适当地增加请求头进行请求要用到Request对象。
2、error.URLError:url的一些问题,这个异常只有一个reason属性
error.HTTPError:error.URLError的子类,在与上面的混合使用时需要将这个异常放到前面,这个异常是一些请求错误,有三个方法,.reason(), .code(), .headers(),在捕捉异常时通常先使用这个
3、urllib.parse.urlparse(url,scheme=‘’,allow_fragments=True)
解析url
from urllib import request, parse
# 解析url
print(parse.urlparse('https://movie.douban.com/'))
print(parse.urlparse('https://movie.douban.com/', scheme='http'))
print(parse.urlparse('movie.douban.com/', scheme='http')) 结果:
ParseResult(scheme='https', netloc='movie.douban.com', path='/', params='', query='', fragment='')
ParseResult(scheme='https', netloc='movie.douban.com', path='/', params='', query='', fragment='')
ParseResult(scheme='http', netloc='', path='movie.douban.com/', params='', query='', fragment='')
反解析url
from urllib import parse
# 将列表元素拼接成url
url = ['http', 'www', 'baidu', 'com', '', 'f2b8183cd1e469a'] # 这里至少需要6个元素
print(parse.urlunparse(url)) 结果:
http://www/baidu;com?1554384640#f2b8183cd1e469a
参考资料:
1、Python爬虫常用库之urllib详解|日常学python:https://mp.weixin.qq.com/s?src=11×tamp=1554382467&ver=1526&signature=fJepqC9Qswpe2fWjtxmNrUth3gX5vZ0jPBQyzBeqQMhhfbj462b*Jk0WPXYUjXP6dUP63tU8G0HqPV9sDWllrGVr0frRAERQE4fY-6oqE5ZZxUXRnIW508nhNQdnQ*be&new=1
Python爬虫(2):urllib库的更多相关文章
- python爬虫之urllib库(三)
python爬虫之urllib库(三) urllib库 访问网页都是通过HTTP协议进行的,而HTTP协议是一种无状态的协议,即记不住来者何人.举个栗子,天猫上买东西,需要先登录天猫账号进入主页,再去 ...
- python爬虫之urllib库(二)
python爬虫之urllib库(二) urllib库 超时设置 网页长时间无法响应的,系统会判断网页超时,无法打开网页.对于爬虫而言,我们作为网页的访问者,不能一直等着服务器给我们返回错误信息,耗费 ...
- python爬虫之urllib库(一)
python爬虫之urllib库(一) urllib库 urllib库是python提供的一种用于操作URL的模块,python2中是urllib和urllib2两个库文件,python3中整合在了u ...
- python爬虫之urllib库介绍
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...
- python 爬虫之 urllib库
文章更新于:2020-03-02 注:代码来自老师授课用样例. 一.初识 urllib 库 在 python2.x 版本,urllib 与urllib2 是两个库,在 python3.x 版本,二者合 ...
- Python 爬虫之urllib库的使用
urllib库 urllib库是Python中一个最基本的网络请求库.可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据. urlopen函数: 在Python3的urlli ...
- python爬虫入门urllib库的使用
urllib库的使用,非常简单. import urllib2 response = urllib2.urlopen("http://www.baidu.com") print r ...
- python爬虫之urllib库
请求库 urllib urllib主要分为几个部分 urllib.request 发送请求urllib.error 处理请求过程中出现的异常urllib.parse 处理urlurllib.robot ...
- Python爬虫系列-Urllib库详解
Urllib库详解 Python内置的Http请求库: * urllib.request 请求模块 * urllib.error 异常处理模块 * urllib.parse url解析模块 * url ...
- python爬虫03 Urllib库
Urllib 这可是 python 内置的库 在 Python 这个内置的 Urllib 库中 有这么 4 个模块 request request模块是我们用的比较多的 就是用它来发起请求 所以我 ...
随机推荐
- pytorch查看CUDA支持情况,只需要三行代码,另附Cuda runtime error (48) : no kernel image is available for execution处理办法
import torch import torchvision print(torch.cuda.is_available()) 上面的命令只是检测CUDA是否安装正确并能被Pytorch检测到,并没 ...
- SecureCRT标签显示IP地址
当使用SecureCRT连接到linux服务器后,SecureCRT的标签会随着操作目录的改变而改变,当连接多个的时候很不好区分,所以需要设置标签栏固定显示IP地址信息. options->Se ...
- openpyxl使用sheet.rows或sheet.columns报TypeError: 'generator' object is not subscriptable解决方式
解决方案: 因为新版本的openpyxl使用rows或者columns返回一个生成器所以可以使用List来解决报错问题 >>> sheet.columns[0] Traceback ...
- 关于解决微信支付sdk中NoClassDefFoundError: Failed resolution of: org.apache.http.conn.ssl.DefaultHostnameVerifier;
导入依赖<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>ht ...
- [原创]SecureCRT终端软件连接VMware Workstation Pro虚拟机
Step1:检查主机的桥接有没有禁用 Step2:进入Ubuntu系统,进入到Ubuntu下,先查看Ubuntu虚拟机的IP配置,打开终端(Ctrl+Alt+T),通过ifconfig命令查看,可以看 ...
- 【webpack系列】从零搭建 webpack4+react 脚手架(四)
经过三个章节的学习,你已经学会搭建了一个基于webpack4的react脚手架.如果要更改配置,比如,你希望把编译后的js文件和css文件等单独放dist下的static目录下,你想想,是不是有点麻烦 ...
- 实例分析ASP.NET在MVC5中使用MiniProfiler监控MVC性能的方法
这篇文章主要为大家详细介绍了ASP.NET MVC5使用MiniProfiler监控MVC性能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 MiniProfiler ,一个简单而有效的迷你剖析器 ...
- [原创]大数据:布隆过滤器C#版简单实现。
public class BloomFilter { public BitArray _BloomArray; public Int64 BloomArryLength { get; } public ...
- pojo,javabean与entitybean
pojo:朴实无华的实体类 javabean:遵守某些规范的可重用的实体类 entitybean:与数据库中的数据记录对应的类 这个链接说的很明白!https://blog.csdn.net/chen ...
- Python语言的PyCharm开发工具的简单使用
1.创建一个新的项目 创建一个目录或者文件夹 设置模板:制作一个常用的,模板 # @Author:lnx# @version V1.0# -*- coding:UTF-8 -*- 搜索/替换快捷键 代 ...