Python爬虫简单常用方法
2017-10-27 19:45
387 查看
Q:什么是Urllib库?
A:Urllib库是Python中一个功能强大,用于操作URL,并在做爬虫项目时经常要用到的库。在Python2.X中,分为Urllib库和Urllib2库,但是在Python3.X之后合并到UrlLib中。
Q:Urllib升级合并后,常见的变化有哪些呢?
A:(1):在Python2.X中使用import.urllib2—对应的,在Python3.X中会使用import.urllib.request,urlib.error
(2):在Python2.X中使用import.urlparse—对应的,在Python3.X中会使用import.urllib.parse
(3):在Python2.X中使用import.urlopen—对应的,在Python3.X中会使用import.urllib.request.urlopen
(4):在Python2.X中使用import.urlencode—对应的,在Python3.X中会使用import.urllib.parse.urlencode
(5):在Python2.X中使用import.quote—对应的,在Python3.X中会使用import.urllib.request.quote
(6):在Python2.X中使用cookielib.CookieJar—对应的,在Python3.X中会使用http.CookieJar
(6):在Python2.X中使用cookielib.CookieJar—对应的,在Python3.X中会使用http.CookieJar
(7):在Python2.X中使用urllib2.Request—对应的,在Python3.X中会使用urllib.request.Request
常用方法
1. urllib.request.urlopen(“网址”) 返回文件对象
例如:file = urllib.request.urlopen(“https://www.baidu.com“)
此时可以通过文件对象的三种读取方法:.read(),readlines(),readline()
url.request.urlretrieve(“https://www.baidu.com“,filename=”本地文件地址”) 将爬取到的信息写入本地文件中
注意:urlretrieve执行过程中会产生一些缓存,如要清除这些缓存,可以使用urlcleanup()进行清除。如:urllib.request.urlcleanup() 。
爬取的网页对象.info() 返回与当前环境有关的信息。
如:file = urllib.request.urlopen(“https://www.baidu.com“)
file.info()
爬取的网页对象.getcode() 返回当前爬取网页的状态码
爬取的网页对象.geturl() 返回当前正在爬取的url地址
url乱码解决方案
Q:为什么会产生url乱码?
A:一般来说,url标准中只会允许出现一部分ASCII字符,比如数字,字母和部分符号,而其他的一些字符和汉字等等是不符合url标准,所以在url中如果有不合法字符就会产生乱码,这个就需要url编码才能解决。在urllib库中提供了urllib.request.quote()进行编码。
例如需要对网址”https://www.baidu.com“编码,可以通过下列代码实现:
urllib.request.quote(“https://www.baidu.com“)
既然存在编码,如果需要解码,可以通过urllib.request.unquote(“编码后的网址”)来进行解码。
以上是Python3.X中urllib库的简单运用
A:Urllib库是Python中一个功能强大,用于操作URL,并在做爬虫项目时经常要用到的库。在Python2.X中,分为Urllib库和Urllib2库,但是在Python3.X之后合并到UrlLib中。
Q:Urllib升级合并后,常见的变化有哪些呢?
A:(1):在Python2.X中使用import.urllib2—对应的,在Python3.X中会使用import.urllib.request,urlib.error
(2):在Python2.X中使用import.urlparse—对应的,在Python3.X中会使用import.urllib.parse
(3):在Python2.X中使用import.urlopen—对应的,在Python3.X中会使用import.urllib.request.urlopen
(4):在Python2.X中使用import.urlencode—对应的,在Python3.X中会使用import.urllib.parse.urlencode
(5):在Python2.X中使用import.quote—对应的,在Python3.X中会使用import.urllib.request.quote
(6):在Python2.X中使用cookielib.CookieJar—对应的,在Python3.X中会使用http.CookieJar
(6):在Python2.X中使用cookielib.CookieJar—对应的,在Python3.X中会使用http.CookieJar
(7):在Python2.X中使用urllib2.Request—对应的,在Python3.X中会使用urllib.request.Request
常用方法
1. urllib.request.urlopen(“网址”) 返回文件对象
例如:file = urllib.request.urlopen(“https://www.baidu.com“)
此时可以通过文件对象的三种读取方法:.read(),readlines(),readline()
url.request.urlretrieve(“https://www.baidu.com“,filename=”本地文件地址”) 将爬取到的信息写入本地文件中
注意:urlretrieve执行过程中会产生一些缓存,如要清除这些缓存,可以使用urlcleanup()进行清除。如:urllib.request.urlcleanup() 。
爬取的网页对象.info() 返回与当前环境有关的信息。
如:file = urllib.request.urlopen(“https://www.baidu.com“)
file.info()
爬取的网页对象.getcode() 返回当前爬取网页的状态码
爬取的网页对象.geturl() 返回当前正在爬取的url地址
url乱码解决方案
Q:为什么会产生url乱码?
A:一般来说,url标准中只会允许出现一部分ASCII字符,比如数字,字母和部分符号,而其他的一些字符和汉字等等是不符合url标准,所以在url中如果有不合法字符就会产生乱码,这个就需要url编码才能解决。在urllib库中提供了urllib.request.quote()进行编码。
例如需要对网址”https://www.baidu.com“编码,可以通过下列代码实现:
urllib.request.quote(“https://www.baidu.com“)
既然存在编码,如果需要解码,可以通过urllib.request.unquote(“编码后的网址”)来进行解码。
以上是Python3.X中urllib库的简单运用
相关文章推荐
- Python爬虫----基础知识(简单爬虫架构、URL管理器和实现方法)
- Python爬虫(4):Beautiful Soup的常用方法
- Python爬虫(二)——urllib库,Post与Get数据传送区别,设置Headers,urlopen方法,简单爬虫
- python写简单爬虫的五种方法 (转)
- python3 request 爬虫 httplib.IncompleteRead() 问题的简单解决方法
- Python爬虫实战(十一):两种简单的方法爬取动态网页
- [记录]Python爬虫过程中遇到的简单带干扰线验证码处理方法
- Python字符串特性及常用字符串方法的简单笔记
- 【转】python win32api win32gui win32con 简单操作教程(窗口句柄 发送消息 常用方法 键盘输入)
- python写简单爬虫的五种方法
- python爬虫之urllib库常用方法用法总结大全
- Python爬虫正则表达式常用符号和方法
- Python字符串特性及常用字符串方法的简单笔记
- Python入门简单的静态网页爬虫2.0 (实现各模块的具体方法)
- Python 用Redis简单实现分布式爬虫的方法
- Python 简单爬虫程序 以及 urllib.urlretrieve()方法 改变文件存放文件位置
- Python爬虫正则表达式常用符号和方法
- Python爬虫----基础知识(简单爬虫架构、URL管理器和实现方法)
- python写简单爬虫的五种方法 (转)
- 一种确定类和对象的简单常用方法