您当前的位置: 首页 >  Python

止步前行

暂无认证

  • 0浏览

    0关注

    247博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python爬虫Requests使用

止步前行 发布时间:2021-09-16 08:54:27 ,浏览量:0

1.基本使用

官方文档

https://cn.python-requests.org/zh_CN/latest/

快速上手

https://cn.python-requests.org/zh_CN/latest/user/quickstart.html

安装

pip install requests -i https://pypi.douban.com/simple

response的属性以及类型

类型 :models.Response

  • response.text:获取网站源码
  • response.encoding:访问或定制编码方式
  • response.url:获取请求的url
  • response.content:响应的字节类型
  • response.status_code:响应的状态码
  • response.headers:响应的头信息
import requests

url = 'http://www.baidu.com'

response = requests.get(url=url)

# 一个类型和六个属性
# Response类型
print(type(response))

# 设置响应的编码格式
response.encoding = 'utf-8'

# 以字符串的形式来返回了网页的源码
print(response.text)

# 返回一个url地址
print(response.url)

# 返回的是二进制的数据
print(response.content)

# 返回响应的状态码
print(response.status_code)

# 返回的是响应头
print(response.headers)
2.get请求

requests.get()

import requests
url = 'https://www.baidu.com/s'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}
data = {
    'wd':'北京'
}

# url  请求资源路径
# params 参数
response = requests.get(url=url,params=data,headers=headers)

content = response.text

print(content)

总结:

  • 参数使用params传递
  • 参数无需urlencode编码
  • 不需要请求对象的定制
  • 请求资源路径中的?可以加也可以不加
3.post请求

requests.post()

import requests
url = 'https://fanyi.baidu.com/sug'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
}

data = {
    'kw': 'eye'
}

# url 请求地址
# data 请求参数
response = requests.post(url=url,data=data,headers=headers)

content =response.text
import json
obj = json.loads(content,encoding='utf-8')
print(obj)

总结:

  • post请求 是不需要编解码
  • post请求的参数是data
  • 不需要请求对象的定制

get和post区别?

  • get请求的参数名字是params post请求的参数的名字是data
  • 请求资源路径后面可以不加?
  • 不需要手动编解码
  • 不需要做请求对象的定制
4.代理

proxy定制,在请求中设置proxies参数,参数类型是一个字典类型

import requests
url = 'http://www.baidu.com/s?'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',
}

data = {
    'wd':'ip'
}

proxy = {
    'http':'211.65.197.93:80'
}

response = requests.get(url = url,params=data,headers = headers,proxies = proxy)
response.encoding = 'utf-8'
content = response.text

with open('daili.html','w',encoding='utf-8')as fp:
    fp.write(content)
关注
打赏
1657848381
查看更多评论
立即登录/注册

微信扫码登录

0.0373s