Python爬虫request模块如何使用-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联是一家集网站建设,蓝田企业网站建设,蓝田品牌网站建设,网站定制,蓝田网站建设报价,网络营销,网络优化,蓝田网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

本篇文章为大家展示了Python爬虫request模块如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

爬虫——requests模块

Requests继承了urllib.request的所有特性,Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码。

相较于urllib.request而言,其使用更加简洁方便。

基本GET请求(headers参数和parmas参数)

1.最基本的GET请求可以直接用get方法

#!/usr/bin/python3
# -*- coding:utf-8 -*-
import requests
 
response = requests.get("http://www.baidu.com/")
# 也可以这么写
# response = requests.request("get", "http://www.baidu.com/")

2.添加headers和查询参数

如果想添加headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用params参数。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
import requests
 
url = "http://www.baidu.com/s?"
 
kw = {"wd":"爬虫"}
 
# User-Agent头
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
 
# params接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get(url = url, params = kw, headers = header)
 
# 打印响应内容,response.text返回的是Unicode格式的数据
print(response.text)
# 打印响应内容,response.content返回的是字节流数据
# print(response.content)
 
# 查看完整的url地址
print(response.url)
 
# 查看响应头部字符编码
print(response.encoding)
 
# 查看响应码
print(response.status_code)

使用response.text时,requests会基于HTTP响应的文本编码自动解码响应内容,大多数Unicode字符集都能被无缝地解码。

使用response.content时,返回的是服务器响应数据的原始二进制字节流,可以用来保存图片等二进制文件。

基本POST讨还(data参数)

1.最基本的GET请求可以直接用post方法

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
import requests
 
response = requests.post("http://www.baidu.com/")
# 也可以这么写
# response = requests.request("post", "http://www.baidu.com/")

2.传入data数据

对于POST请求来说,我们一般需要为它增加一些参数。那么最基本的传参方法可以利用data这个参数。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
 
import requests
 
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
 
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
 
word = input("请输入需要翻译的词条:")
 
from_data = {
    "i":word,
    "from":"AUTO",
    "to":"AUTO",
    "smartresult":"dict",
    "doctype":"json",
    "version":"2.1",
    "keyfrom":"fanyi.wed"
}
 
response = requests.post(url = url, data = from_data, headers = header)
 
# print(response.text)
print(response.json())

代理(proxies参数)

如果需要使用代理,你可以通过为任意请求方法提供proxies参数来配置单个请求:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
__author__ = 'mayi'
 
import requests
 
# 根据协议类型,选择不同的代理
proxies = {
    "http": "http://12.34.56.78:90",
    "https": "http://21.43.65.87:90"
}
 
response = requests.get("http://www.baidu.com/", proxies = proxies)
 
print(response.text)

Cookies和Sission

1.Cookies

如果一个响应中包含了cookie,那么我们可以利用cookies参数拿到:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
__author__ = 'mayi'
 
import requests
 
response = requests.get("http://www.baidu.com/")
 
cookiejar = response.cookies
 
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
 
print(cookiejar)
 
print(cookiedict)

2.Sission

在requests里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端连接服务器开始,到客户端浏览器与服务器断开。

会话能让我们在跨请求时候保持某些参数,比如在同一个Session实例发出的所有请求之间保持cookie。

实现人人网登录

#!/usr/bin/python3
# -*- coding:utf-8 -*-
__author__ = 'mayi'
 
import requests
 
# 创建session对象,用于保存Cookie值
session = requests.session()
 
# User-Agent头
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36'}
 
# 需要登录的账户和密码
email = input("请输入您的账户:")
password = input("请输入您的密码:")
data = {"email": email, "password": password}
 
# 发送附带账户密码的请求,并获取登录后的Cookie值,保存在session中
session.post("http://www.renren.com/PLogin.do", data = data)
 
# session中包含了登录后的Cookie值,可以直接访问那些需登录后才能访问的页面
response = session.get("http://www.renren.com/413928886/profile")
 
# 打印响应内容
print(response.text)

上述内容就是Python爬虫request模块如何使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联-成都网站建设公司行业资讯频道。


名称栏目:Python爬虫request模块如何使用-创新互联
本文网址:http://abwzjs.com/article/cegigp.html