requests模块
requests模块
-
使用requests模块进行网络数据的捕获
-
requests模块使用的编码流程:
- 指定url
- 发起请求
- 获得响应数据
- 数据解析
- 持久化存储
简单爬虫
# 爬取搜狗首页的页面数据
import requests
#指定url
url = 'https://www.sogou.com/'
#发起请求
response = requests.get(url=url)
#获取响应数据
page_text = response.text
#持久化存储
with open('./sogou.html','w',encoding='utf-8') as fp:
fp.write(page_text)
url参数、UA伪装
#爬取搜狗指定词条搜索后的页面数据
url = 'https://www.sogou.com/web'
#处理参数
wd = input('enter a word:')
param = {
'query':wd
}
#UA伪装
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
#发起请求
response = requests.get(url=url,params=param,headers=headers)
#获取响应数据
page_text = response.content
#持久化存储
fileName = wd+'.html'
with open(fileName,'wb') as fp:
fp.write(page_text)
print(fileName,'下载成功!!!')
json数据与post请求
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
url = 'https://fanyi.baidu.com/sug'
wd = input('enter a english word:')
#参数的处理
data = {
'kw':wd
}
response = requests.post(url=url,data=data,headers=headers)
json_data = response.json()
print(json_data)
豆瓣电影
import requests
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
url = 'https://movie.douban.com/j/chart/top_list'
param = {
"type": "13",
"interval_id": "100:90",
"action": "",
"start": "0",
"limit": "100",
}
json_data = requests.get(url=url,params=param,headers=headers).json()
print(json_data)
session
需要 session 的场景,保持状态。 如,登陆后的操作。
两种方法
- 直接使用
requests.Session
类,像使用requests
一样, 不用的是内部会自动保存cookies
,不过如果所有请求都直接使用session
,请求量又很大,那将是很大的资源消耗。在需要用的时采用即可。 - 分析请求响应,手动将
cookies
添加进下次的请求中。