Python爬虫入门到入狱---第一天

1.urllib库の使用

在使用之前我们需要了解的是urllib库是什么?
首先urllib是Python自带的标准库,无需安装,可以直接使用。如果想系统性的学习urllib库,可以直接看它的官方文档。
其分为四个大的模块,分别是:

  • urllib.request 请求模块

  • urllib.error异常处理模块

  • urllib.parse解析模块

  • urllib.robotparser robot.txt文件解析模块

今天我们就使用urllib.request 请求模块简单爬取http://www.baidu.com
的源码

爬取百度首页的源码大概可以分为五步骤:

  1. 导入urllib.request 请求模块
import urllib.request
  1. 定义一个url 就是你要访问的地址
url = 'http://www.baidu.com'
  1. 模拟浏览器向服务器发送请求 response响应
response = urllib.request.urlopen(url)
  1. 获取响应中的页面的源码
content = response.read().decode('utf-8')
#content 内容的意思
#read方法  返回的是字节形式的二进制数据
#我们要将二进制的数据转换为字符串 
#二进制--》字符串  解码  decode('编码的格式')变成utf-8

如果不转码会打印出不同的结果,待会让我们来瞧一瞧吧

  1. 打印数据
print(content)

让我们运行一下瞧一瞧吧

屏幕截图 2022-01-25 194933.png

如果不加decode()会有什么情况发生,让我们瞧一瞧吧

屏幕截图 2022-01-25 201555.png

学会简单使用urllib库爬取http://www.baidu.com 之后,让我们来了解一下
urrlib一些其他基础知识吧

2.urllib库の一个类型和六个方法

import urllib.request

url = 'http://www.baidu.com'

# 模拟浏览器向服务器发送请求
response = urllib.request.urlopen(url)

1. 一个类型

  • response是HTTPResponse的类型,这个类型要记住了,我们日后再谈
print(type(response))

屏幕截图 2022-01-25 203850.png

2. 六个方法

  1. 读取内容, 按照一个字节一个字节的去读,效率会比较慢
content = response.read()
print(content)

屏幕截图 2022-01-25 203924.png

#返回5个字节的内容
content = response.read(5)
 print(content)

屏幕截图 2022-01-25 203956.png

  1. 读取源码一行
content = response.readline()
print(content)

屏幕截图 2022-01-25 204850.png

  1. 一行读取源码
content = response.readlines()
print(content)

屏幕截图 2022-01-25 205210.png

  1. 返回状态码 如果是200了 那么就证明我们的逻辑没有错
print(response.getcode())

屏幕截图 2022-01-25 205258.png

  1. 返回url地址
print(response.geturl())

屏幕截图 2022-01-25 205318.png

  1. 获取是一个状态信息
print(response.getheaders())

屏幕截图 2022-01-25 205417.png

总结

  • 数据类型是HttpResponse、不要忘记哦
  • read() 字节形式读取二进制 扩展:read(5)返回前几个字节
  • readline() 读取一行
  • readlines() 一行一行读取 直至结束
  • getcode() 获取状态码
  • geturl() 获取url
  • getheaders() 获取headers
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值