1、requests作用:
就是一个基于网络请求的模块,可以用来模拟浏览器发请求。
环境安装:
pip install requests
requests模块的使用流程:
指定一个字符串形式url
发起请求
获取响应数据
持久化存储
实现一个简易的网页采集器
爬取到任意关键字对应的页面源码数据
简单需求:爬取搜狗首页的页面源码数据
import requests
#指定一个字符串形式url
url = 'https://www.sogou.com/'
#发起请求
response = requests.get(url=url)#get返回一个响应对象
#获取响应数据
page_text = response.text#获取字符串形式的响应数据
#持久化存储
with open('./sougou.html','w',encoding='utf-8') as fp:
fp.write(page_text)
2、案例需求1:实现简易的网页采集器,爬取到任意关键字对应的页面源码数据
2.1过程1分析
import requests
url = 'https://www.sogou.com/web?query=jay'
response = requests.get(url=url)
page_text = response.text
with open('./jay.html','w',encoding='utf-8') as fp:
fp.write(page_text)
上述代码出现了问题:
出现了乱码问题
数据量级不对
2.2过程2分析
#解决乱码问题
url = 'https://www.sogou.com/web?query=jay'
response = requests.get(url=url)
# response.encoding#返回响应数据原始的编码格式
response.encoding = 'utf-8'
page_text = response.text
with open('./jay.html','w',encoding='utf-8') as fp:
fp.write(page_text)
当前的请求被搜狗认定为是一个异常的请求
什么是异常的请求?
服务器端检测到该次请求不是基于浏览器访问。使用爬虫程序发起的请求就是异常的请求。
User-Agent:
本身是请求头中的一个信息。
概念:请求载体的身份标识
请求载体:浏览器,爬虫程序
反爬机制:UA检测
对方服务器端会检测请求载体的身份标识