爬虫
requests模块
- urllib模块:基于模拟浏览器上网的模块。网络请求模块。
requests:基于网络请求的模块
- 作用:模拟浏览器上网。
requests模块的编码流程:
- 指定url
发起请求
- 获取响应数据(爬取到的数据)
持久化存储
页面采集
import requests
#1.爬取搜狗首页的页面源码数据
url = 'https://www.sogou.com/'
response = requests.get(url=url)
page_text = response.text #text返回的是字符串形式的响应数据
with open('./sogou.html','w',encoding='utf-8') as fp:
fp.write(page_text)
import requests
#2.简易的网页采集器
#涉及到的知识点:参数动态化,UA伪装,乱码的处理
word = input('enter a key word:')
url = 'https://www.sogou.com/web'
#参数动态化:将请求参数封装成字典作用到get方法的params参数中
params = {
'query':word
}
response = requests.get(url=url,params=params)
page_text = response.text
fileName = word+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(word,'下载成功!!!')
上述代码出现的问题:
- 乱码问题
- 爬取数据丢失
import requests
#乱码处理
word = input('enter a key word:')
url = 'https://www.sogou.com/web'
#参数动态化:将请求参数封装成字典作用到get方法的params参数中
params = {
'query':word
}
response = requests.get(url=url,params=params)
#可以修改响应数据的编码
response.encoding = 'utf-8'#手动修改了响应对象的编码格式
page_text = response.text
fileName = word+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(word,'下载成功!!!')