爬虫学习笔记 - 1

零零散散的在学python爬虫,属于偶尔有空想起来看一下。没有完整的知识体系,基础也学得不扎实。在这里,希望自己能够坚持python爬虫的学习~


requests库

1. Get 请求

  • 基本请求

    res = requests.get(url,params=params,headers=headers)  

    向网站发起请求,并获取响应对象

  • 常用参数

    • url :需要抓取的URL地址
    • headers : 请求头
    • timeout : 超时时间,超过时间会抛出异常
    • params: 查询参数,url为基准的url地址,不包含查询参数,该方法会自动对params字典编码,然后和url拼接。参数类型:字典,字典中键值对作为查询参数
  • 响应对象(res)属性

    • encoding :响应字符编码 res.encoding = 'utf-8'
    • text :字符串 网站源码
    • content :字节流 字符串网站源码(图片、音频、视频这些文件的本质都是由二进制码组成,用content)
    • status_code :HTTP响应码
    • url :实际数据的URL地址
    • hearders: 响应头
    • cookies:Cookies

2. post请求

  • 基本请求

res = requests.post(url,data = None,json = None,**kwargs)

  • 三种编码方式

    • 最常见的post提交数据的方式,以form表单形式提交数据
      application/x-www-form-urlencoded
    • 以json格式提交数据
      application/json
    • 一般使用来上传文件
      multipart/form-data
  • 示例

# 1、form 形式提交数据
import requests,json
 
url = 'http://httpbin.org/post'
data = {'key1':'value1','key2':'value2'}
r =requests.post(url,data)
print(r.text)

# 2、json格式提交数据
import requests,json
 
url_json = 'http://httpbin.org/post'
data_json = json.dumps({'key1':'value1','key2':'value2'})   
#dumps:将Python的字典结构导出到json(字符串)
#loads:将json(字符串)读成python的字典结构
r_json = requests.post(url_json,data_json)
print(r_json.text)

#3、上传文件
import requests,json
 
url_mul = 'http://httpbin.org/post'
files = {'file':open('E://report.txt','rb')}
r = requests.post(url_mul,files=files)
print(r)
print(r.text)
print(r.content)
  • 使用状态码判断是否成功

requests提供一个内置的状态码查询对象requests.codes,使用实例如下:

import requests
r = requests.get('http://www.jianshu.com')
#调用exit()函数,终止Python程序
exit() if not r.status_code == requests.codes.ok else print('Request Successfully')
posted @ 2020-03-26 00:27  nico_co  阅读(83)  评论(0)    收藏  举报