初学爬虫(二):爬取静态网页之(3)自定义requests——发送POST请求and超时处理

news/2024/7/19 12:18:32 标签: python, 爬虫

1、发送POST请求

从前面初学爬虫(二):爬取静态网页之(3)自定义requests——设置传递URL(网络地址)参数and自定义请求头(怎么找+怎么做)中已经讲解过通过get函数设置传递URL(网络地址)参数来实现get请求。

但是get函数存在两个问题:

  1. get函数无法实现发送一些编码为表单形式的数据
  2. get函数用在登录时,会直接将密码(或其他隐私内容)显示在URL中,这样十分不安全

post请求就能很好的解决上述get请求存在的两个问题。

话不多说,直接上实例:

未将字典传递给data参数时:

python">import requests #导入requests库

r = requests.post('http://httpbin.org/post') #未将字典传递给data参数
print (r.text)

在这里插入图片描述
可以发现表单中是没有数据的

python">import requests #导入requests库

key_dict = {'key1': 'value1', 'key2': 'value2'} #构建字典
r = requests.post('http://httpbin.org/post', data=key_dict) #将字典传递给data参数
print ("发送POST请求后的网址:", r.url)
print (r.text)

在这里插入图片描述

可以发现网页内容中有了我们设置的表单形式数据,且发送POST请求后的网址并未发生变化。

2、超时处理

爬虫程序在发出爬取请求后,就会开始等待服务器的响应返回,但有时可能存在服务器一直不返回的情况,这样爬虫程序就会一直等待,造成时间的浪费和效率的降低。

针对上述情况,可以使用timeout参数来解决:若服务器在timeout设置的时间内没有响应,就会返回异常,一般将其设置为20秒。

下面用一段程序来为大家展示抛出的异常长什么样子:

python">import requests
link = "https://www.csdn.net/" 
r = requests.get(link, timeout= 0.0001)#设置时间为0.0001秒查看异常

异常:在这里插入图片描述


http://www.niftyadmin.cn/n/948541.html

相关文章

初学数据挖掘——数据探索(六):数据特征分析之相关性分析

相关性分析即分析连续变量之间线性相关程度的强弱,并用合适的统计量或统计图表示出来的过程。 如现在想要分析得到不同菜品之间的相关关系,则可以通过分析这些菜品日销售量之间的相关性来得到。 代码如下: #导入相关包 from __future__ im…

初学爬虫(二):爬取静态网页之(4)使用requests库进行爬虫实践——获取豆瓣电影TOP250的电影名字全过程详解

本实践目的是获取豆瓣电影TOP250的所有电影的名称。 豆瓣电影TOP250网页链接:https://movie.douban.com/top250 1、分析网站 (1)提取请求头 这里以提取谷歌请求头为例: ①双击打开谷歌: ②在页面任意位置单击右键…

初学爬虫(三):使用selenium模拟浏览器抓取动态网页之(1)安装selenium库and对selenium库的基本使用

1、安装selenium库 直接使用最简单的pip命令安装: pip install selenium2、selenium库的基本使用 (1)下载geckodriver(Firefox)/chromedriver(Google chrome) 下面以下载geckodriver为例(读者电脑上若还未安装Firefox火狐浏览…

geckodriver的下载、安装与配置

1、下载geckodriver压缩包 链接:https://pan.baidu.com/s/1u8_lFbCWSc3Bux2Win0v-Q 提取码:2677 下载好后的geckodriver压缩包: 2、解压geckodriver 将1中下载好的geckodriver压缩包解压得到exe文件: 3、将2中得到的exe文件…

将新建的虚拟环境导入到jupyter notebook中

1、新建虚拟环境 见博客: python创建虚拟环境(一):使用conda创建虚拟环境 python创建虚拟环境(二):使用终端命令创建虚拟环境 python创建虚拟环境(三):用pyc…

jupyter notebook 使用新环境无法连接,终端报错[W 20:14:43.988 NotebookApp] KernelRestarter: restart failed

jupyter notebook 显示无法连接(无法运行程序): 终端报错: 解决方法如下: 1、在cmd终端输入以下命令激活需要使用的环境: activate 环境名我在这里输入: activate tensorflow1.0可以发现…

tensorflow1.15.0(1.x最新版本)and tensorflow1.15.0-gpu下载与安装详细过程

一、创建虚拟环境 见博客: python创建虚拟环境(一):使用conda创建虚拟环境 python创建虚拟环境(二):使用终端命令创建虚拟环境 python创建虚拟环境(三):用py…

ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问的解决方法

今天使用: pip3 install --upgrade --force-reinstall --no-cache-dir jupyter报错: ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问。: ‘d:\anaconda3\lib\site-packages\~mq\backend\cython\constants.cp37-…