os: win10
下载安装包,安装一路点,结果忘记添加环境变量到系统
手动添加环境变量:需要添加的有:
C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Scripts;C:\ProgramData\Anaconda3\Library\bin
这里主要来写一些爬虫:
所谓爬虫就是通过编写程序模拟浏览器上网,让其去互联网中抓取数据的过程。爬虫分为三类:
- 通用爬虫:爬取一整张页面源码数据。
- 聚焦爬虫:爬取页面中局部的数据。一定是在通用爬虫的基础上实现。
- 增量式爬虫:用来监测网站数据更新的情况。以便于爬取最新更新出来的数据!
requests模块
说到爬虫,不得不说requests模块
安装: pip install requests
requests模块是一个基于网络请求的模块,模拟浏览器发起请求访问网络。
分析requests的编码流程:
- 1.指定url
- 2.发起了请求
- 3.获取响应数据
- 4.持久化存储
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)
而这仅仅是爬取一个网页,怎么解决数据量级的问题呢?
- 反爬机制:UA检测
- 反反爬策略:UA伪装
- UA伪装的实现:
- 1.定义一个字典
- 2.在字典中进行相关请求头信息的伪装
- 3.将该字典作用到get方法的headers参数中即可
- UA检测被作用到了大量的网站中,因此日后,爬虫程序编写中一定要直接加上UA的操作
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,'爬取成功!!!')
这样就实现了动态输入关键词,并完成对该关键词的搜索。