Requests 简单使用

os: win10

下载安装包,安装一路点,结果忘记添加环境变量到系统

手动添加环境变量:需要添加的有:

C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Scripts;C:\ProgramData\Anaconda3\Library\bin

这里主要来写一些爬虫:

所谓爬虫就是通过编写程序模拟浏览器上网,让其去互联网中抓取数据的过程。爬虫分为三类:

requests模块

说到爬虫,不得不说requests模块

安装: pip install requests

requests模块是一个基于网络请求的模块,模拟浏览器发起请求访问网络。

分析requests的编码流程:

import requests
#1.指定url
url = 'https://www.sogou.com/'

#2.发起请求,get的返回值是一个响应对象
response = requests.get(url)

#3.获取响应数据,text属性返回的是字符串形式的响应数据
page_text = response.text

#4,持久化存储
with open('./sogou.html','w',encoding='utf-8') as fp:
    fp.write(page_text)

这大概是最简单的爬虫了,只是获取了sogou首页的,下面我们通过搜狗来搜索一些关键词:通过分析网页请求,找到url

url = 'https://www.sogou.com/web?query=人民币'
response = requests.get(url)
page_text = response.text
with open('./人民币.html','w',encoding='utf-8') as fp:
    fp.write(page_text)

结果是拿到了,但是出现了乱码:

解决乱码的问题:

url = 'https://www.sogou.com/web?query=人民币'
response = requests.get(url)
#修改响应数据的编码格式
response.encoding = 'utf-8'
page_text = response.text
with open('./人民币.html','w',encoding='utf-8') as fp:
    fp.write(page_text)

而这仅仅是爬取一个网页,怎么解决数据量级的问题呢?

url = 'https://www.sogou.com/web'

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
}

#参数动态化
wd = input('enter a key word:')
param = {
    'query':wd
}
response = requests.get(url,headers=headers,params=param)#UA伪装

#修改响应数据的编码格式
response.encoding = 'utf-8'

page_text = response.text
fileName = wd+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
    fp.write(page_text)
print(fileName,'爬取成功!!!')

这样就实现了动态输入关键词,并完成对该关键词的搜索。

上一篇:自定义组件之分页

下一篇:Fiddler使用