1.网页表单与登陆窗口

Requests 库擅长处理那些复杂的 HTTP 请求、cookie、header(响应头和请求头)等内容。

1)表单提交

import requests

#字段

params = {'firstname': 'Ryan', 'lastname': 'Mitchell'}

#请求方式:post    表单提交页面

r = requests.post("http://pythonscraping.com/pages/files/processing.php", data=params)

print(r.text)

2)提交文件和图像

#表单

<form action="processing2.php" method="post" enctype="multipart/form-data">

Submit a jpg, png, or gif: <input type="file" name="image"><br>

<input type="submit" value="Upload File">

</form>

#提交文件

import requests

files = {'uploadFile': open('../files/Python-logo.png', 'rb')}

r = requests.post("http://pythonscraping.com/pages/processing2.php",

files=files)

print(r.text)

3)处理登陆和cookie

#从请求结果中获取 cookie,打印登录状态的验证结果,然后再通过 cookies 参数把 cookie 发送到简介页面。

import requests

params = {'username': 'Ryan', 'password': 'password'}

r = requests.post("http://pythonscraping.com/pages/cookies/welcome.php", params)

print(r.cookies.get_dict())

r = requests.get("http://pythonscraping.com/pages/cookies/profile.php",cookies=r.cookies)

print(r.text)

#会话(session)对象(调用 requests.Session() 获取)会持续跟踪会话信息,像 cookie、header、运行 HTTP 协议的信息

import requests

session = requests.Session()

params = {'username': 'username', 'password': 'password'}

s = session.post("http://pythonscraping.com/pages/cookies/welcome.php", params)

print(s.cookies.get_dict())

s = session.get("http://pythonscraping.com/pages/cookies/profile.php")

print(s.text)

#Requests 库有一个 auth 模块专门用来处理 HTTP 认证:

import requests

from requests.auth import HTTPBasicAuth

auth = HTTPBasicAuth('ryan', 'password')

r = requests.post(url="http://pythonscraping.com/pages/auth/login.php", auth=auth)

print(r.text)

《python网络数据采集》笔记2的更多相关文章

  1. 《Andrew Ng深度学习》笔记1

    深度学习概论 1.什么是神经网络? 2.用神经网络来监督学习 3.为什么神经网络会火起来? 1.什么是神经网络? 深度学习指的是训练神经网络.通俗的话,就是通过对数据的分析与计算发现自变量与因变量的映 ...

  2. Andrew Ng - 深度学习工程师 - Part 2. 改善深层神经网络:超参数调试、正则化以及优化(Week 2. 优化算法)

    ===========第2周 优化算法================ ===2.1 Mini-batch 梯度下降=== epoch: 完整地遍历了一遍整个训练集 ===2.2 理解Mini-bat ...

  3. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 4. 深层神经网络)

     =================第2周 神经网络基础=============== ===4.1  深层神经网络=== Although for any given problem it migh ...

  4. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 1. 深度学习概论)

     =================第1周 循环序列模型=============== ===1.1 欢迎来到深度学习工程师微专业=== 我希望可以培养成千上万的人使用人工智能,去解决真实世界的实际问 ...

  5. 《Andrew Ng深度学习》笔记4

    浅层神经网络 1.激活函数 在神经网络中,激活函数有很多种,常用的有sigmoid()函数,tanh()函数,ReLu函数(修正单元函数),泄露ReLu(泄露修正单元函数).它们的图形如下: sigm ...

  6. 《Andrew Ng深度学习》笔记3

    浅层神经网络 初步了解了神经网络是如何构成的,输入+隐藏层+输出层.一般从输入层计算为层0,在真正计算神经网络的层数时不算输入层.隐藏层实际就是一些算法封装成的黑盒子.在对神经网络训练的时候,就是对神 ...

  7. 《Andrew Ng深度学习》笔记2

    神经网络基础 1.图计算 计算时有两种方法:正向传播和反向传播.正向传播是从底层到顶层的计算过程,逐步推出所求公式.反向传播是从顶层到底层,从已知的式子求出因变量的影响关系. 在这里用到的反向传播算法 ...

  8. 《Andrew Ng深度学习》笔记5

    深层神经网络 深层神经网络的组成如图,这里主要是深层神经网络符号的定义. 为什么要用深层神经网络,有什么好处?这里主要是分层的思想.在软件工程中,如果问题遇到困难,一般是通过“加多”一层的方法来解决, ...

  9. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 3. 浅层神经网络)

     =================第3周 浅层神经网络=============== ===3..1  神经网络概览=== ===3.2  神经网络表示=== ===3.3  计算神经网络的输出== ...

  10. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 2. 神经网络基础)

     =================第2周 神经网络基础=============== ===2.1  二分分类=== ===2.2  logistic 回归=== It turns out, whe ...

随机推荐

  1. hdu3074 线段树求区间乘积(单点更新)

    题意:       给你n个数,两种操作,(1) 把第b个数改成c (2)算出b-c的乘积,结果对1000000007取余. 思路:       线段树单点更新,简单题目,不多解释,具体看代码. #i ...

  2. Mac SSH工具-Termius

    全平台,功能强大 SSH连接.SFTP连接.端口转发.多设备同步 官方网站

  3. Etcd中Raft日志复制的实现

    Raft state of log commitIndex : A log entry is committed once the leader that created the entry has ...

  4. leecode之Implement strStr()

    KMP算法的实现: #include <stdio.h> #include <string.h> #include <stdlib.h> int strStr(ch ...

  5. 不同规模的企业对CRM的需求是否相同?

    CRM客户管理系统在我们的认知中往往是中大型企业的选择.如今,越来越多中小规模企业开始使用CRM系统.CRM的功能随着发展变得越来越实用,可以满足不同行业不同业务规模的企业的需求.同时,CRM功能类型 ...

  6. 百万级数据mysql查询优化

    一.limit越往后越慢的原因 当我们使用limit来对数据进行分页操作的时,会发现:查看前几页的时候,发现速度非常快,比如 limit 200,25,瞬间就出来了.但是越往后,速度就越慢,特别是百万 ...

  7. gdb 调试,当发现程序退出,需要定位程序退出位置时。

    在进入gdb后设置,执行下面语句 handle SIGSEGV nopass handle SIGSEGV nostop 执行程序,触发问题,gdb侧执行c 故障出现时,执行bt,显示堆栈调用.

  8. echo "This is line $LINENO"返回行号

    echo "This is line $LINENO"返回行号 LINENO 变量LINENO返回它在脚本里面的行号. #!/bin/bash echo "This is ...

  9. python类变量的分类和调用方式

    #!/usr/bin/python # -*- coding: UTF-8 -*- # 父类 class JustCounter: ''' 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中 ...

  10. 攻防世界(十三)unserialize3

    攻防世界系列 :unserialize3 1.打开题目,反序列化 2.代码审计 类xctf被调用时_weakeup()函数会被自动执行,但当序列化字符串中属性值个数大于属性个数,就会导致反序列化异常, ...