欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

爬虫基础框架 之urllib(一) --- urllib基础

程序员文章站 2022-06-12 18:26:15
Mac本爬虫 首先需导入一个模块 urllib导入配置 urllib 是python提供的一个用于发起和处理http请求和响应的框架。后期的一些框架,比如: requests、 scrapy等都是基于它 从urllib中导入请求模块 编写 url urllib基本方法 1. urlopen( ) 方 ......

mac本爬虫

  • 首先需导入一个模块
1 import ssl
2 ssl._create_default_https_context = ssl._create_unverified_context 

urllib导入配置

urllib 是python提供的一个用于发起和处理http请求和响应的框架。后期的一些框架,比如: requests、 scrapy等都是基于它

  • 从urllib中导入请求模块 
1 from urllib import request
  • 编写 url  
1 url = "http://www.baidu.com/"

urllib基本方法

1. urlopen( ) 方法

用于打开一个远程的url连接,并且向这个连接发出请求,获取响应结果。返回的结果是一个http响应对象,这个响应对象中记录了本次http访问的响应头和响应体

  • 获取响应
1 response = request.urlopen(url=url)
2 print(response)
3 结果 :<http.client.httpresponse object at 0x10be801d0>
  • 获取打印响应头
1 print(response.headers)
  • 获取打印响应
1 print(response.url)        #打印url 
2 print(response.status)     #打印状态码
  • 读取响应体
1 res = response.read()       # 读取的是二进制  
2 print(res)                  # 读取到的响应体是一个二进制字符串  
3 print(res.decode("utf-8"))  # 对响应体进行解码 
  • 读取一行
1 res = response.readline()      # 读取一行 
2 res1 = response.readline()     # 读取下一行  
3 res2 = response.readlines()    # 读取多行。得到一个列表 每个元素是一行  
4 print(res)                     # 打印

2. urlretrieve(url =”xxx“, filename = ”xxx“) 方法

打开url这个连接 并且发起请求,获得响应并把响应结果保存到filename中

  • 获取 保存到文件中
1 res3 = request.urlretrieve(url=url,filename="./baidu.html") 
2 print(res3)     # 获取url 保存到baidu.html中 并打印

3. urlencode( ) 方法

对url进行编码,因为urllib这个框架中的url中不能出现汉字,只能出现ascii码字符

  • 导入parse框架,是urllib中处理url的工具
1 from urllib import parse
  • 0.设置url
1 url = "https://www.baidu.com/s?"
  • 1.把参数写成字典的形式
1 dic= {"ie":"utf-8","wd":"奔驰"}
  • 2.用parse的urlencode方法编码
1 parames = parse.urlencode(dic)
  • 3.将编码以后的参数拼接到url中
1 url += parames
2 request.urlopen(url=url)