Requests第一血|3

Requests第一血|3

文章目录

  • Requests第一血|3
    • 写在前面
    • 网络请求模块
    • Requests模块的编码顺序
    • 环境安装
    • 实战编码
    • 文件操作说明
    • 写在后面

写在前面

你好,我是禅墨

今天发现一个有趣的现象,在家人眼里,我玩电子就是一个修手机、电器的!

然后去问了别人,他说他学的是农工,然后他妈妈就以为他以后毕业是开拖拉机的。

那么各位看官们,在你家长眼里,你所学的专业毕业后是 干什么的,我们评论区见!

从这篇文章开始,才算真正意义上的和代码打交道了,写代码之前,首先就要选择一个编辑器,哪个好用呢,当然是Pycharm啊,这还用问吗,对不对!

网络请求模块

  • urllib模块 :较为古老,多用于Python2.x中,使用较为繁琐,但功能基本满足爬虫,有助于深入理解requests模块
  • requests模块:Python中原生的一款基于网络请求的模块,功能非常强大,使用简单便捷,效率极高,作用于模拟浏览器发送请求。

Requests模块的编码顺序

  1. 指定url,所请求页面所在的网址
  2. 发起请求,向服务器发送请求,得到一个响应对象
  3. 获取响应数据,数据包含请求页面的源码信息
  4. 持久化存储,将得到的数据存储到本地或数据库

环境安装

默认你已安装Python解释器,并且已经将其加入到环境当中

如果安装的是Pycharm,直接在设置里面安装即可,或者打开CMD

pip install requests

pip 速度缓慢怎么办呢,那就换国内镜像源(以清华为例),一劳永逸解决

首先打开CMD,输入:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述

看到上图所示结果,找到生成的pip.ini,打开它,我们会看到:

Requests第一血|3_第1张图片

大功告成,就可以丝滑得下载第三方库了

实战编码

需求:爬取百度首页数据并存储到本地

程序及注释:

# --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 -文件尾

Requests第一血|3_第2张图片

你可能感兴趣的:(爬虫,Python,python,https,爬虫)