Requests第一血|3
写在前面
你好,我是禅墨!
今天发现一个有趣的现象,在家人眼里,我玩电子就是一个修手机、电器的!
然后去问了别人,他说他学的是农工,然后他妈妈就以为他以后毕业是开拖拉机的。
那么各位看官们,在你家长眼里,你所学的专业毕业后是 干什么的,我们评论区见!
从这篇文章开始,才算真正意义上的和代码打交道了,写代码之前,首先就要选择一个编辑器,哪个好用呢,当然是Pycharm啊,这还用问吗,对不对!
网络请求模块
- urllib模块 :较为古老,多用于Python2.x中,使用较为繁琐,但功能基本满足爬虫,有助于深入理解requests模块
- requests模块:Python中原生的一款基于网络请求的模块,功能非常强大,使用简单便捷,效率极高,作用于模拟浏览器发送请求。
Requests模块的编码顺序
- 指定url,所请求页面所在的网址
- 发起请求,向服务器发送请求,得到一个响应对象
- 获取响应数据,数据包含请求页面的源码信息
- 持久化存储,将得到的数据存储到本地或数据库
环境安装
默认你已安装Python解释器,并且已经将其加入到环境当中
如果安装的是Pycharm,直接在设置里面安装即可,或者打开CMD
pip install requests
pip 速度缓慢怎么办呢,那就换国内镜像源(以清华为例),一劳永逸解决
首先打开CMD,输入:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
看到上图所示结果,找到生成的pip.ini,打开它,我们会看到:
大功告成,就可以丝滑得下载第三方库了
实战编码
需求:爬取百度首页数据并存储到本地
程序及注释:
# --coding:utf-8 --
# 需求:爬取百度首页页面数据
# 导入模块
import requests
if __name__ == "__main__":
#step 1:指定url
url = 'https://www.baidu.com/'
#step 2:发起请求
#get方法会返回一个响应对象
response = requests.get(url)
#step 3:获取响应数据.text 返回的是字符串形式的响应数据
page_text = response.text
print(page_text)
#step 4:持久化存储
with open('./baidu.html','w',encoding='utf-8') as fp:
fp.write(page_text)
print('爬取结束')
结束后会看到此工程文件夹里生成了一个网页:baidu.html
文件操作说明
open(path, ‘-模式-‘,encoding=’UTF-8’)
即open(路径+文件名, 读写模式, 编码)
读写模式:
r :只读
r+ : 读写
w : 新建(会对原有文件进行覆盖)
a : 追加
b : 二进制文件
常用的模式有:
“a” 以“追加”模式打开, (从 EOF 开始, 必要时创建新文件)
“a+” 以”读写”模式打开
“ab” 以”二进制 追加”模式打开
“ab+” 以”二进制 读写”模式打开
“w” 以”写”的方式打开
“w+” 以“读写”模式打开
“wb” 以“二进制 写”模式打开
“wb+” 以“二进制 读写”模式打开
“r+” 以”读写”模式打开
“rb” 以”二进制 读”模式打开
“rb+” 以”二进制 读写”模式打开
rU 或 Ua 以”读”方式打开, 同时提供通用换行符支持 (PEP 278)
需注意:
1、使用“w”模式。文件若存在,首先要清空,然后重新创建
2、使用“a”模式。把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。
3、f.read([size]) :size未指定则返回整个文件,如果文件大小>2倍内存则有问题。f.read()读到文件尾时返回”“(空字串)
4、file.readline() 返回一行
5、file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行
6、”for line in f: print line” #通过迭代器访问
7、f.write(“hello\n”) #如果要写入字符串以外的数据,先将他转换为字符串.
8、f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
9、f.seek(偏移量,[起始位置]) : 用来移动文件指针
偏移量 : 单位“比特”,可正可负
起始位置 : 0 -文件头, 默认值; 1 -当前位置; 2 -文件尾
10、f.close() 关闭文件
写在后面
OK!这就是本篇文章的内容了,欢迎关注禅墨云!
博客网站同步更新,网址:chanmoyun.gitee.io
位置 : 0 -文件头, 默认值; 1 -当前位置; 2 -文件尾