当前位置: 首页 > news >正文

python爬虫入门(二)之Requests库

一、储备篇

1、requests库让我们可以通过python代码去构建和发送HTTP请求

2、第三方库,要先安装

python终端,输入pip install requests

successfully installed:安装成功

requirement already satisfied: 说明已经安装过,无需再安装

若没有pip(python包管理工具)

则可以先去http://pip.pypa.io/en/stable/installation/学习下载安装

3、

import requests
response=requests.get("http://books.toscrape.com") #发送get请求,这是一个专门给练习爬虫的网站
#协议名(http://或https://)+网址 == 完整的URL
#用requests库的函数发送请求时,请求头的信息会被自动生成(主机域名(URL参数中),客户端是谁(自动生成),客户端想要什么类型的数据)#若想对某些信息进行更改的话,可以额外传入一个headers的参数
head={"User-Agent":"Mozilla/5.0(Windows NT 10.0;Win64;x64"} #数据类型是字典,键值对可写清楚要传入的信息
#User-Agent: Mozilla/5.0(Windows NT 10.0;Win64:x64)可帮我们把爬虫程序伪装成正常浏览器(浏览器类型及版本,以及电脑操作系统等)
response=requests.get("http://books.toscrape.com",headers=head)print(response)   #打印出来是一个response类的实例,代表着服务器发回给我们的响应,包含的属性有:
print(response.status_code) #状态码属性
print(response.ok)  #ok属性,true表示请求成功
if response.ok:print("请求成功")#获取响应体的内容print(response.text) #text属性,会以字符串存储响应内容
else:print("请求失败")

 

二、实战篇

爬取豆瓣top250数据:

#1、安装requests库: 终端输入pip install requests#2、引入requests库:
import requests#豆瓣用418回应爬虫,自己只希望服务于正常的浏览器
#伪装:
#抄作业: 选一个网页->右键检查->Network-> 刷新网页->点击任意请求->展开request haeders->找到并复制user-agent
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"}
response=requests.get("https://movie.douban.com/top250",headers=headers)
print(response)
print(response.status_code) #表示客户端错误,可以通过链接developer.mozilla.org查看文档
print(response.text)

http://www.lryc.cn/news/394071.html

相关文章:

  • Git 操作补充:cherry-pick、变基
  • 在 PostgreSQL 中,如何处理大规模的文本数据以提高查询性能?
  • 秋招提前批面试经验分享(下)
  • 零基础STM32单片机编程入门(七)定时器PWM波输出实战含源码视频
  • 【ubuntu自启shell脚本】——在ubuntu中如何使用系统自带的启动应用程序设置开机自启自己的本地shell脚本
  • nodejs配置国内镜像
  • 【JavaEE】多线程进阶
  • 大模型LLM面试常见算法题-包括Attention和Transformer常见面试题
  • 90元搭建渗透/攻防利器盒子!【硬件篇】
  • 用vue2+elementUI封装手机端选择器picker组件,支持单选、多选、远程搜索多选
  • 『古籍自有答案』古风H5案例赏析
  • Laravel模型事件完全指南:触发应用程序的动态行为
  • hot100 |八、二叉树
  • Matlab协方差矩阵分解法生成随机场
  • android 在清单文件中配置receiver,系统是何时会注册此广播接收者的?
  • 嵌入式硬件电路常用设计软件
  • c#的List<T>的SelectMany 和Select
  • 69.WEB渗透测试-信息收集- WAF、框架组件识别(9)
  • ASCII码对照表(Matplotlib颜色对照表)
  • Mysql-常用函数及其用法总结
  • 【c++刷题笔记-数组】day29:452. 用最少数量的箭引爆气球、 435. 无重叠区间 、 763.划分字母区间
  • 【数据结构】链表带环问题分析及顺序表链表对比分析
  • 快速解决找不到krpt.dll,无法继续执行代码问题
  • C# List、LinkedList、Dictionary性能对比
  • 【Spring Cloud】微服务的简单搭建
  • 全球首款商用,AI为视频自动配音配乐产品上线
  • Git管理源代码、git简介,工作区、暂存区和仓库区,git远程仓库github,创建远程仓库、配置SSH,克隆项目
  • 【机器学习】机器学习与时间序列分析的融合应用与性能优化新探索
  • 执行力不足是因为选择模糊
  • 力扣 225题 用队列实现栈 记录