python爬虫之爬虫入门

python 复制代码
import requests
r=requests.get("http://www.baidu.com")
print(r.status_code)#用status_code来确定页面状态是否正常
type(r)
r.headers

requests库入门

  1. status_code可以用来检验网页状态是否正常
  2. type(r)返回r的类型
  3. r.headers返回该页面头部信

运行结果如下:

返回的头部信息:

requests对象属性

|---------------------|------------------------------|
| 属性 | 说明 |
| r.status_code | HTTP请求返回状态,200表示连接成功,404表示失败 |
| r.text | HTTP响应内容的字符串形式,即url对应的页面内容 |
| r.encoding | 从HTTPheader中猜测的响应内容编码方式 |
| r.apparent_encoding | 从内容中分析出的内容编码方式 |
| r.content | HTTP响应内容的二进制形式 |

r.encoding和r.appatren_encoding的区别

r.encoding是从HTTP头部信息中的charset中获取的,当header中不存在charset时,则认为编码为"ISO-8859-1"

r.apparent_encoding则是从网页内容中分析出的编码形式

所以当我们利用r.text查看网页内容时,可看到返回是乱码的

此时利用r.apparent_encoding获取页面内容编码后将内容方式赋值给encoding后再次查看页面内容时则能正确解读后;所以当使用encoding不能正确解码内容时,我们就使用apparent_encoding。

requests库代码框架

python 复制代码
import requests

def getHTMLText(url):
    try:
        r.requests.get(url,timeout=30)
        r.raise_for_status#如果状态不是200,则会引发HTTPError
        r.encoding=r.apparent_encoding#使得解码正常
        return r.text
    except:
        return"产生错误"
if __name__=="__main__":
    url="http//:www.baidu.com"
    print(getHTMLText(url))
相关推荐
隐退山林6 小时前
JavaEE:多线程初阶(二)
java·开发语言·jvm
乌暮6 小时前
JavaEE初阶---《JUC 并发编程完全指南:组件用法、原理剖析与面试应答》
java·开发语言·后端·学习·面试·java-ee
小鸡吃米…6 小时前
机器学习 - 亲和传播算法
python·机器学习·亲和传播
内存不泄露6 小时前
基于Django和Vue3的文件分享平台设计与实现
后端·python·django
没学上了6 小时前
SLM-多头注意力机制
pytorch·python·深度学习
CCPC不拿奖不改名7 小时前
计算机网络:电脑访问网站的完整流程详解+面试习题
开发语言·python·学习·计算机网络·面试·职场和发展
wanderist.7 小时前
C++输入输出的一些问题
开发语言·c++·图论
PXM的算法星球7 小时前
用 semaphore 限制 Go 项目单机并发数的一次流量控制优化实践
开发语言·后端·golang
寻星探路7 小时前
【算法专题】哈希表:从“两数之和”到“最长连续序列”的深度解析
java·数据结构·人工智能·python·算法·ai·散列表
@zulnger7 小时前
python 学习笔记(闭包)
笔记·python·学习