requests基础操作

1、基本介绍

  • requests就是爬虫中一个基于网络请求的模块。
  • 作用:模拟浏览器上网的。
    2、环境安装:pip install requests
    3、编码流程
  • 指定URL(相当于打开浏览器输入网址)
  • 发起请求(相当于按下回车)
  • 获取响应数据(从指定url中爬取到数据)
  • 持久化存储

4、例如我们做一个简单的网页采集器(模拟搜狗网址中,输入关键字返回页面)

import requests

#请求参数动态化
keyword = input('请输入关键字:')
#稍后想要把该字典作为请求参数
pram = {
    'query':keyword, #只存在一个键值对(存在一组请求参数)
}
#1.指定url
url = 'https://www.sogou.com/web' #需要将请求参数去除
#2.发起请求
#params参数就是用来在请求时携带指定的请求参数
response = requests.get(url=url,params=pram)

#3.获取响应数据
page_text = response.text

#4.持久化存储
fileName = keyword + '.html'
with open(fileName,'w') as fp:
    fp.write(page_text)

问题:没有爬取到我们想要的数据?原因是因为遇到反爬机制

  • 分析:从报错信息中,得到了一个关键信息:网站检测到了异常的访问请求
  • 浏览器可以正常访问,而程序不能正常访问;
  • 网站如何可以监测请求是不是通过浏览器发起的呢?
    • 是通过请求的一个头信息:user-agent
  • 破解方式(UA伪装):伪装请求载体的身份标识
    • 该反爬机制是一种最常见最通用的,也就是说绝大数网站都会携带该反爬机制,因此日后写爬虫程序,默认带上UA伪装操作
import requests

#请求参数动态化
keyword = input('请输入关键字:')
#稍后想要把该字典作为请求参数
pram = {
    'query':keyword, #只存在一个键值对(存在一组请求参数)
}
#1.指定url
url = 'https://www.sogou.com/web' #需要将请求参数去除
#2.发起请求
head = { #存放需要伪装的头信息
    'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
#通过headers参数进行了头信息的伪装
response = requests.get(url=url,params=pram,headers=head)

#3.获取响应数据
page_text = response.text

#4.持久化存储
fileName = keyword + '.html'
with open(fileName,'w') as fp:
    fp.write(page_text)
posted @   Tony_xiao  阅读(203)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示