python爬虫-----request模块学习及案例

本文详细介绍了Python爬虫中request模块的使用,包括str和bytes的区别、urllib库常见方法、Request对象的User-Agent设置以及GET请求方法。通过多个实战案例,如下载百度贴吧、爬取百度翻译、豆瓣电影、KFC餐厅地址和药监总局信息,展示了request模块在爬虫中的应用。
摘要由CSDN通过智能技术生成

python爬虫-----request模块学习及案例

基本知识

str和bytes的区别

python3中:
str 使用encode方法转化为 bytes
bytes通过decode转化为str

在Python 3中把两者给分开了这个在使用中需要注意。实际应用中在互联网上是通过二进制进行传输,所以就需要将str转换成bytes进行传输,而在接收中通过decode()解码成我们需要的编码进行处理数据这样不管对方是什么编码而本地是我们使用的编码这样就不会乱码。

str1 = '人生苦短'
b = str1.encode()
str1 = b.decode()
print(str1)
print(type(str1))

print('***************')
print(b)
print(type(b))
结果输出
人生苦短
<class 'str'>
***************
b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad'
<class 'bytes'>

urllib库

常见方法

1.request.urlopen()

import urllib
urllib.request.urlopen(url,data,timeout)
  • 第一个参数ur即为URL,第二个参数data是访问URL时要传送的数据, 第三个timeout是设置超时时间。
  • 第二三个参数是可以不传送的,data默认为空None, timeout默认为socket._GLOBAL DEFAULT _TIMEOUT
  • 第一个参数URL是必须要传送的,在这个例子里面我们传送了百度的URL,执行urlopen方法之后, 返回一个response对象,返回信息便保存在这里面。

2.read()

  • read()方法就是读取文件内的全部内容,返回bytes类型

3.getcode()

  • 返回HTTP的响应码,成功返回200,4服务器页面出错,5服务器问题

4.info()

  • 返回服务器响应HTTP报头
import urllib.request

url1 = "http://www.baidu.com/"
f = urllib.request.urlopen(url1)
info = f.read()
#print(info.decode())
print(f.geturl())
print('***********************')
print(f.getcode())
print('***********************')
print(f.info())

输出结果
http://www.baidu.com/
***********************
200
***********************
Bdpagetype: 1
Bdqid: 0x853689130000c1c9
Cache-Control: private
Content-Type: text/html;charset=utf-8
Date: Tue, 16 Mar 2021 12:20:23 GMT
Expires: Tue, 16 Mar 2021 12:19:47 GMT
P3p: CP=" OTI DSP COR IVA OUR IND COM "
P3p: CP=" OTI DSP COR IVA OUR IND COM "
Server: BWS/1.1
Set-Cookie: BAIDUID=E5EA9206E149F08295546FF28C768CE2:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BIDUPSID=E5EA9206E1
  • 11
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南岸青栀*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值