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

爬虫FirstDay01-Request请求模块详解

一、requests模块介绍

#第一步安装requests模块
#导入requests模块
import requests
#使用一个变量接受requests.get方法
resp = requests.get('https://www.baidu.com')
#默认输出响应状态码
print(resp)
#获取响应状态码也可以通过status_code方法
print(resp.status_code)

 

二、关于params参数

记得我刚学爬虫时候params参数还可以,现在百度首页都有关键字搜索反爬了。。。。

但是有办法你可以直接把整个链接复制到get请求方法里。。然后修改关键字的参数值。。

import requests
#params参数 用于存放搜索关键词
kw = {
    'c':'news',
    'q':'deepseek',
    'from':'home',
    'ie':'utf-8'
}
#将params参数传递到get请求方法中
resp = requests.get('https://search.sina.com.cn/?c=news&q=deepseek&from=home&ie=utf-8',params=kw)
#在页面中右键选择查看源代码 找到网页所使用的unicode编码格式
resp.encoding = 'utf-8' #一般是utf-8 注意!encoding编码格式是可变的
#将百度的首页保存为html文档
with open('sina1.html',mode='a+')as f:
    f.write(resp.text)#请求到的内容写入文件 .text返回的是unicode格式的数据
    
#使用try和except语句 保证出现异常时可以发现异常
    try:
        print('OK!')
    except:
        print('遇到一个错误')
    f.close()




 

这样可以看到文档中还是有当前关键字的

 三、关于headers参数

你正常可以访问就不用加,如果响应码不是200就需要加

右键-检查-网络

右键检查找到页面响应头信息user-agent复制一下,当然当前状态是可以访问的,可以不用加

但有些情况下比如400状态就需要添加一下再访问试试

#导入requests模块
import requests
#设置headers头部信息
headers = {
'User-Agent':
	'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:135.0) Gecko/20100101 Firefox/135.0'
}
#使用一个变量接受requests.get方法
resp = requests.get('https://www.baidu.com/s?wd=%E8%8B%B9%E6%9E%9C%E9%A6%96%E6%AC%A1%E5%85%A8%E9%9D%A2%E6%94%BE%E5%BC%83Home%E9%94%AE&sa=fyb_n_homepage&rsv_dl=fyb_n_homepage&from=super&cl=3&tn=baidutop10&fr=top1000&rsv_idx=2&hisfilter=1',headers=headers)
#默认输出响应状态码 如果状态码不是200的情况下再去加headers信息
print(resp)
#获取响应状态码也可以通过status_code方法
print(resp.status_code)


http://www.kler.cn/a/554596.html

相关文章:

  • 网易严选DevOps实践:从传统到云原生的演进
  • 如何利用ArcGIS Pro打造萤火虫风格地图
  • 二叉树层序遍历的三种情况(总结)
  • 蓝桥杯备考:递归初阶
  • Vue.js Vue 测试工具:Vue Test Utils 与 Jest
  • 学习threejs,THREE.Material材质基类详解
  • 费曼学习法1 - 你好,PIL!图像处理的魔法棒 (入门篇)
  • 右键管家深度评测:打造个性化Windows右键菜单的高效工具
  • 论文略读:MoE-LLaVA:MixtureofExpertsforLargeVision-LanguageModels
  • requestAnimationFrame(rAF)使用,与传统方法(如 setTimeout/setInterval),直观展示 rAF 的优势
  • C++:使用 SFML 创建强化学习迷宫场景
  • 计算机网络-OSI七层参考模型与数据封装,网络安全零基础入门到精通实战教程!
  • Spring Boot +SQL项目优化策略,GraphQL和SQL 区别,Spring JDBC 等原理辨析(万字长文+代码)
  • Python与Anaconda在CUDA环境中的角色解析
  • github在同步本地与远程仓库时遇到的问题
  • 6121A 音频分析仪
  • 网络运维学习笔记 015网工初级(HCIA-Datacom与CCNA-EI)NAT网络地址转换
  • 使用Java爬虫获取1688自定义API操作接口
  • 【Axure 模版素材】数据可视化驾驶舱+图表素材 - AxureMost
  • CPU与GPU之区别(The Difference between CPU and GPU)