Python 爬虫利器一之 Requests 库的用法

简介

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

一、安装

 pip快速安装:pip install requests

二、使用

import requestsresponse  = requests.get("https://www.baidu.com")
print(type(response))
print(response.status_code)
print(type(response.text))response.enconding = "utf-8'
print(response.text)print(response.cookies)print(response.content)
print(response.content.decode("utf-8"))

response.text返回的是Unicode格式,通常需要转换为utf-8格式,否则就是乱码。response.content是二进制模式,可以下载视频之类的,如果想看的话需要decode成utf-8格式。
  不管是通过response.content.decode("utf-8)的方式还是通过response.encoding="utf-8"的方式都可以避免乱码的问题发生

2、一大推请求方式

import requests
requests.post("http://httpbin.org/post")
requests.put("http://httpbin.org/put")
requests.delete("http://httpbin.org/delete")
requests.head("http://httpbin.org/get")
requests.options("http://httpbin.org/get")

基本GET:

import requestsurl = 'https://www.baidu.com/'
response = requests.get(url)
print(response.text)

r.encoding                       #获取当前的编码
r.encoding = 'utf-8'             #设置编码
r.text                           #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.content                        #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。

r.headers                        #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

r.status_code                     #响应状态码
r.raw                             #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read()   
r.ok                              # 查看r.ok的布尔值便可以知道是否登陆成功
 #*特殊方法*#
r.json()                         #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.raise_for_status()             #失败请求(非200响应)抛出异常

带参数的GET请求:

  如果想查询http://httpbin.org/get页面的具体参数,需要在url里面加上,例如我想看有没有Host=httpbin.org这条数据,url形式应该是http://httpbin.org/get?Host=httpbin.org

  下面提交的数据是往这个地址传送data里面的数据。

import requestsurl = 'http://httpbin.org/get'
data = {'name':'zhangsan','age':'25'
}
response = requests.get(url,params=data)
print(response.url)
print(response.text)#URL传递参数
payload = {'keyword': '香港', 'salecityid': '2'}
r = requests.get("http://m.ctrip.com/webapp/tourvisa/visa_list", params=payload) 
print(r.url) #示例为http://m.ctrip.com/webapp/tourvisa/visa_list?salecityid=2&keyword=香港

POST请求

# 1、基本POST实例import requestspayload = {'key1': 'value1', 'key2': 'value2'}
ret = requests.post("http://httpbin.org/post", data=payload)print(ret.text)# 2、发送请求头和数据实例import requests
import jsonurl = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}ret = requests.post(url, data=json.dumps(payload), headers=headers)print(ret.text)
print(ret.cookies)

 

https://cuiqingcai.com/2556.html

https://www.cnblogs.com/lei0213/p/6957508.html

https://www.cnblogs.com/lei0213/p/6957508.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

firefox flash插件_巧用firefox下载视频资源

技术应用场景:1. 免广告播放视频(含vip)2. 下载各大视频网站的视频资源步骤:1.提前下载安装以下程序:火狐浏览器(Firefox)https://www.lanzous.com/i98jfne火狐flash插件 https://www.lanzous.com/i98jercVideo DownloadHelper插件 https://w…

台式电脑-时间和日期无法更改,提示需要管理员授权

使用系统自带功能修改一直不成功,此时:使用进入bios后台的方式进行修改,即可完成。

sdr 软件_无线电爱好者系列-1.通过SDR获取周围无线电信号及应用

一、什么是SDR?SDR就是Software Defined Radio,即软件定义无线电。之前的无线电通信系统都是基于特殊的硬件元器件完成无线电信号的接收和解码,例如混频器、滤波器、放大器、调制器和解调器、检波器等。而SDR是基于计算机完成相同的工作,也就是把无线电…

程序语言功能

C语言 用来写操作系统 java 写B/S架构的内容 C 写游戏开发 C# windows应用程序 不流行:2014年起,手机销售量超过电脑销售量 Python 大数据 人工智能 算法处理 爬虫 数据分析 机器学习 达到千万级的并发量--使用分布式来减压

c python 内存冲突_Python在计算内存时应该注意的问题?

我之前的一篇文章,带大家揭晓了 Python 在给内置对象分配内存时的 5 个奇怪而有趣的小秘密。文中使用了sys.getsizeof()来计算内存,但是用这个方法计算时,可能会出现意料不到的问题。 文档中关于这个方法的介绍有两层意思: 该方法…

爬虫1-爬虫入门

爬虫 通过编写程序来获取到互联网上的资源 需求:用程序模拟浏览器 输入一个网址 从该网址中获取到资源或者内容 """ File: 01入门.py Author: chde_wang Date: 2021-04-19 14:30:31 Description: """ # 爬虫 通过编写程…

notepad多行编辑_Windows 10 UWP 推荐 | 极具现代感的轻量化文本编辑器:Notepads

柒才也许你正在用VS Code, Notepad或者Sublime,但是相信很多小伙伴跟我一样,在快速记录笔记或者修改配置文件的时候还是会用Windows系统自带的记事本Notepad.exe(毕竟启动速度快,界面清爽)可是问题在于Windows 10自带的…

爬虫2-web请求与http协议

1web请求 1服务器渲染 在服务器那边直接把数据和html整合在一起,统一返回给浏览器 在页面源代码中可以看到数据 2客户端渲染 第一次请求只拿到html骨架, 第二次请求拿到数据,进行数据分析 在页面源代…

python中读取txt文件、统计其中所有字母出现的频度_Python编程小技巧:如何统计序列中元素的出现频度...

原标题:Python编程小技巧:如何统计序列中元素的出现频度实际案例 某随机序列中,找到出现次数最高的三个元素,他们的出现次数是多少? 对某英文文章的单词进行词频统计,找到出现次数最高的10个单词&#xff0…

爬虫3-request的get与post简单使用

requests.get # 安装request pip install requests # import requests # url "http://www.sogou.com/web?query周杰伦" # resp requests.get(url) # 地址栏链接 一定是get方式提交 # print(resp) # print(resp.text) # 拿到网页源代码 访问被拦截# import requ…

adsl服务器客户端配置cisco_【干货】Cisco路由排错经典案例分析

关注我,你的眼睛会怀孕对于网工来说,熟悉与掌握路由排错的思路和技巧是非常必要的。接下来,将对三例典型的路由故障排错案例进行分析。一、不堪重负,路由器外网口关闭1、网络环境某单位使用的是Cisco路由器,租用电信30…

爬虫4-正则表达式及Python的re模块

正则表达式语法: # -*- coding: utf-8 -*- 元字符:具有固定含义的特殊符号 常用元字符:(一般一次匹配一个字符) . 匹配除换行符以外的任意字符 \w 匹配字母数字或下划线 \s 匹配任意的空白符 \n 匹配一个换行符 \t 匹配…

centos sudo不能运行_如何在Linux中配置sudo访问权限

Linux 系统中 root 用户拥有 Linux 中全部控制权力。Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为。如果其他用户想去实施一些行为,不能为所有人都提供 root 访问权限。因为如果他或她做了一些错误的操作,没有办法去纠…

html文件中文在浏览器中显示乱码问题解决

利用浏览器打开html文件时&#xff0c;中文显示乱码&#xff0c;如下是原文件的内容 1 <html> 2 <head> 3 <title>狗熊王</title> 4 </head> 5 6 <body> 7 <p>狗熊王…

highscore软件_软件|标准物质PDF卡片查找HighScore

有宝物的柜子实用、有趣、干货2019.5.15 前面&#xff0c;我们介绍了Jade软件|MDI Jade 安装包、安装教程、使用手册软件|CasaXPS安装包、安装教程、基本操作&#xff01;今天分享↓↓↓HighScore的安装与简单使用(如有侵权&#xff0c;联系后台删除&#xff01;)第一部分&am…

爬虫5-BeautifulSoup模块简解

1、html标记语言了解 <html> <meta http-equiv"Content-Type"content"text/html;charsetutf-8"> <h1>我的祖国</h1> <h1 align"center">我的祖国</h1> # h1 标签 # align 属性 # center 属性值 <标签 …

js图片转二进制流_V8是如何执行一段JS代码的?

汇编器 编译器 解释器解释执行和解释执行什么是V8&#xff1f;V8执行Js代码的过程汇编器 编译器 解释器众所周知&#xff0c;计算机只能理解机器语言&#xff0c;而我们平时编程用的通常是高级语言&#xff0c;所以源代码通常都要经过层层转换最终变成机器语言运行。早期只有汇…

爬虫5-BeautifulSoup模块简解2

1.BeautifulSoup简解2 from bs4 import BeautifulSoup import re file open("./baidu.html",rb) html file.read() bs BeautifulSoup(html,"html.parser") # 解析内容 解析器# 1 Tag 标签及其内容&#xff1a;拿到它所找到的第一个内容 print(bs.titl…

python lxml xpath_Python/lxml/Xpath:如何找到包含特定文本的行?

例如&#xff0c;要获得一个类似以下内容的输出&#xff0c;需要什么“现金和短期投资144841 169760 189252 86743 57379”&#xff1f;或者类似“物业、厂房和设备-总价值725104 632332 571467 538805 465493”&#xff1f;在我已经通过siteshttp://www.techchorus.net/web-sc…

数据清洗-python实践

# -*- coding: utf-8 -*-import pymysql import numpy as npy import pandas as pda import matplotlib.pylab as pyl import matplotlib.pyplot as plt#导入数据 connpymysql.connect(host"127.0.0.1",user"root",passwd"123456",db"爬虫1…