requests第一血

Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库。与urllib相比,Requests更加方便,可以节约我们大量的工作,建议爬虫使用Requests库。

Python 网络爬虫
#!/usr/bin/env python 
# -*- coding:utf-8 -*-
#- 需求:爬取搜狗首页的页面数据
import requests
if __name__ == "__main__":
    #step_1:指定url
    url = 'https://www.sogou.com/'
    #step_2:发起请求
    #get方法会返回一个响应对象
    response = requests.get(url=url)
    #step_3:获取响应数据.text返回的是字符串形式的响应数据
    page_text = response.text
    print(page_text)
    #step_4:持久化存储
    with open('./sogou.html','w',encoding='utf-8') as fp:
        fp.write(page_text)
    print('爬取数据结束!!!')

requests请求方式

requests提供的请求各个请求方式:

import requests
requests.get(url)
requests.post(url)
requests.put(url)
requests.delete(url)
requests.head(url)
requests.options(url)
get请求

get请求核心代码是requests.get(url),具体例子如下:

import requests
url = 'http://www.ai8py.com'
response = requests.get(url)
print(response)

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

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

文件操作说明
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() 关闭文件

发表评论

邮箱地址不会被公开。 必填项已用*标注