Python request与requests比较

爬取静态网页的数据相对比较简单,以往都是照着帖子粘一下代码能跑起来就OK了

后来发现 在import时候 有的用的是 request 有的是requests,虽然只是差了一个s

比较了一下这两个包

(1)request是python 自带的,使用 import urllib.request;而 requests需要pip install

(2)request 采用的是urlopen 然后read后进行decode获得网页内容,若需要加header之类的,需要增加request中的Request类来定义header;

而requests更加便捷,直接设置header 和数据格式即可

(3)返回的内容:request返回的一般是utf-8的字符串,requests可以定义返回的类型是json ,或者 byte等

(4)request是先构造get post 请求,再发起;而requests是构造get post 并行发起

下面是一个关于request 与 requests使用,及涉及中文解码的小例子

import urllib.request
import requests
#from urllib.parse import quote

"""
爬取静态网页 https://www.ccf.org.cn/Academic_Evaluation/AI/
比较request 和 requests不同使用
以及中文字符乱码的处理

"""


def fetch_data_byrequest(url):
	#req = requests.get(url)
	#html = req.text
	#return html
	req=urllib.request.urlopen(url)
	content=req.read().decode()
	return content

def fetch_data_byrequests(url):
	req = requests.get(url)
	content = req.text.encode(req.encoding).decode(req.apparent_encoding)
	return content

if __name__=="__main__":
	url = "https://www.ccf.org.cn/Academic_Evaluation/AI/"
	content_req = fetch_data_byrequest(url)
	#print (content_req)

	content_reqs=fetch_data_byrequests(url)
	#print (content_reqs)

	# 输出到文件
	f1 = open("request_content.txt","w",encoding="utf-8")
	print(content_req,file=f1)
	f1.close()

	f2=open("requests_content.txt","w",encoding="utf-8")
	print(content_reqs,file=f2)
	f2.close()


 

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值