网络爬虫-requests库

一颗蔬菜 2019-05-30 PM 98℃ 0条
官方中文文档

链接

基本get请求
import requests

params = {
    'wd':'python'
}
# 带参数请求
res = requests.get("http://dict.baidu.com/s",params = params)

带参数请求在参数少时可直接写成

res = requests.get("http://dict.baidu.com/s",params ={'wd':'python'})
基本post请求
import requests

params = {
    'wd':'python'
}
res = requests.post("http://dict.baidu.com/s",data = params)
# post方法和get方法的带参数写法不同
服务端响应的信息
res = requests.post("http://www.baidu.com/")
print(res.status_code) # 打印响应状态码
print(res.url)   # 打印请求的URL
print(res.text)  # 打印解码后的返回的数据
print(res.header) # 打印对方服务器的响应头Header
print(res.content) # 打印二进制格式的响应内容
print(res.cookie) # 打印访问时的cookie信息
print(res.apparent_encoding) # 打印服务器端的编码方式
print(res.json()) # 打印json格式的响应内容
自定义请求头部
import requests
headers = {
    'content-type': 'text/html; charset=utf-8'
}
res = requests.get("http://www.baidu.com",headers = headers)
代理访问
import requests

proxies= {
    "http":"http://127.0.0.1:9999",
    "https":"http://127.0.0.1:8888",
    "http": "http://user:pass@10.10.1.10:3128/"  # 需要账户名和密码的情况
}
res  = requests.get("https://www.baidu.com",proxies=proxies)
超时设置
import requests

res  = requests.get("https://www.baidu.com",timeout = 1000)
异常处理
import requests
 
URL = 'http://ip.taobao.com/service/getIpInfo.php'  # 淘宝IP地址库API
try:
    r = requests.get(URL, params={'ip': '8.8.8.8'}, timeout=1)
    r.raise_for_status()    # 如果响应状态码不是 200,就主动抛出异常
except requests.RequestException as e:
    print(e)
else:
    result = r.json()
    print(type(result), result, sep='\n')
身份认证
import requests

requests.get("https://www.baidu.com", auth=HTTPDigestAuth('user', 'pass'))
标签: 爬虫

非特殊说明,本博所有文章均为博主原创。