鱼C论坛

 找回密码
 立即注册
查看: 806|回复: 1

爬虫发送请求返回结果问题?

[复制链接]
发表于 2023-11-20 21:19:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import urllib.request
import requests

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

# 模拟浏览器向服务器发送请求
r1 = urllib.request.urlopen(url)
r2 = requests.get(url=url)
print(type(r1))
print(type(r2))

#服务器返回的这两个类型有什么区别?用BeautifulSoup和lxml解析时有什么区别?
#输出结果是:
<class 'http.client.HTTPResponse'>
<class 'requests.models.Response'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-20 21:19:35 | 显示全部楼层
这两个类型的区别在于 urllib.request.urlopen 返回的是 http.client.HTTPResponse 对象,而 requests.get 返回的是 requests.models.Response 对象。

http.client.HTTPResponse 是Python标准库中处理HTTP响应的类,它提供了一些方法来获取响应的状态码、头部信息和响应体等。而 requests.models.Response 是Requests库中封装的响应对象,它也提供了类似的方法来获取响应信息。

在使用BeautifulSoup和lxml解析时,两者的区别并不大。你可以使用 r1.read() 来获取 http.client.HTTPResponse 对象的响应内容,然后将其传递给BeautifulSoup或者lxml进行解析。对于 requests.models.Response 对象,你可以直接使用 r2.text 或者 r2.content 来获取响应内容,然后同样传递给解析器进行解析。

总的来说, requests 库更加方便和易用,因此在实际开发中推荐使用 requests 库进行HTTP请求的发送和处理。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-3 07:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表