URL相应内容
url 组成部分:
protocol :// hostname[:port] / path /
protocol:协议
hostname[:port] :主机名,端口名为可选参数
path:主机资源的具体位置
域名和服务器名
e.g. www.baidu.com
baidu.com:域名
www:服务器名
Python 3爬虫内容
urllib库的使用
urllib—URL handing modules
官方文档
https://docs.python.org/3/library/urllib.html#module-urllib
- urllib.request 用于打开读取和读取URLs的操作
- urllib.error 包含由使用urllib.request产生的错误,可用try进行捕捉处理
- urllib.parse 用于解析URLs
- urllib.robotparser 用于解析robots.txt文本文件
urllib.request 具体使用
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
此接口函数用于打开和处理URLs信息,返回的对象response如同一个文本对象。注意,我们可以调用read(),进行读取。再通过print(),将读到的信息打印出来。
浏览器就是作为客户端从服务器端获取信息,然后将信息解析,再展示给我们的。
我们已经成功获取了信息,但是显然他们都是二进制的乱码,看起来很不方便。我们怎么办呢?
我们可以通过简单的decode()命令将网页的信息进行解码,并显示出来,
拿百度举例:
# -*- coding: UTF-8 -*-
from urllib import request
if __name__=="__main__":
url = "http://www.baidu.com"
response = request.urlopen(url)
data=response.read()
data=data.decode("UTF-8")
print(data)
from urllib import request 和 import urllib区别
本质上和功能上没有区别,区别体现在调用的时候
使用 from urllib import request 在后面调用的时候可以只用response = request.urlopen(url) 而 使用 import urllib 在后面调用的时候要写成 response = urllib.request.urlopen(url)