加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python 爬虫 urllib模块介绍

发布时间:2020-12-20 12:05:33 所属栏目:Python 来源:网络整理
导读:? ? 一.urllib库 概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求。其常被用到的子模块在Python3中的为urllib.request和urllib.parse,在Python2中是urllib和urllib2。 ? ? ?使用流程: 指定url 针对指定的url发

?

?

一.urllib库

  概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求。其常被用到的子模块在Python3中的为urllib.request和urllib.parse,在Python2中是urllib和urllib2。

? ? ?使用流程:

  • 指定url
  • 针对指定的url发起请求 (基于urllib的request子模块发起请求)
  • 获取服务器响应回来的页面数据
  • 持久化存储 (可以把页面数据存到数据库,或者存到本地磁盘)

?

1.第一个简单的爬虫程序:爬取搜狗首页的页面数据

import urllib.request


# 1.指定url
url = https://www.sogou.com/

‘‘‘
2.发起请求:使用urlopen函数对指定的url发起请求,
该函数返回一个响应对象,urlopen代表打开url
‘‘‘
response = urllib.request.urlopen(url=url)

# 3.获取响应对象中的页面数据:read函数可以获取响应对象中存储的页面数据(byte类型的数据值)
page_text = response.read()

# 4.持久化存储:将爬取的页面数据写入文件进行保存
with open("sougou.html","wb") as f:
    f.write(page_text)
    print("写入数据成功")
    f.close()

?生成一个html文件,把爬取数据写入到文件里

?

urlib模块urlopn方法说明:

urlopen函数原型:
    urllib.request.urlopen(url,data=None,timeout=<object object at 0x10af327d0>,*,cafile=None,capath=None,cadefault=False,context=None)

在上述案例中我们只使用了该函数中的第一个参数url。在日常开发中,我们能用的只有url和data这两个参数。

url参数:指定向哪个url发起请求
data参数:可以将post请求中携带的参数封装成字典的形式传递给该参数(暂时不需要理解,后期会讲)

urlopen函数返回的响应对象,相关函数调用介绍:
response.headers():获取响应头信息
response.getcode():获取响应状态码
response.geturl():获取请求的url
response.read():获取响应中的数据值(字节类型)

?

?

? 2.二进制数据的爬取:爬取网络上的某张图片数据,且存储到文件

?

import urllib.request

# 1.指定url
url = https://pic.qiushibaike.com/system/pictures/12112/121121212/medium/ZOAND29U4NKNEWEF.jpg

‘‘‘
2.发起请求:使用urlopen函数对指定的url发起请求,
该函数返回一个响应对象,urlopen代表打开url
‘‘‘
response = urllib.request.urlopen(url=url)
# 3.获取响应对象中的图片二进制类型的数据
img_data = response.read()
# 4.持久化存储:将爬取的图片写入本地进行保存
with open(./tupian.png,wb) as fp:
    fp.write(img_data)
    fp.close()

生成图片文件

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读