Python-爬虫-requests库用语post登录

requests库很强大,支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的URL和POST数据自动编码。

可以发送无参数的get请求,也可以发送有参数的get请求,修改headers等等。

这里主要展发送post请求,通过data参数来传递。

比如:登录chinaunix网站,通过登录名、密码来登录。

通过查看chinaunix网站源码,可以看到登录页面的网址是:

http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LIcAc

不同的电脑登录网址可能不一样,请查看具体的网页源代码。

为了应对网站的反爬虫,可以修改headers来模拟网页登录。具体如下:

import requests

conn = requests.session()
url = ‘http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LIcAc‘
postdata = {
    ‘username’:’***’,
    ‘password’:’***‘
}
headers = {
            ‘User-Agent‘: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36‘}
rep = conn.post(url, data=postdata,headers=headers)
with open(‘1.html‘, ‘wb‘) as f:
    f.write(rep.content)

代码中的登录名和密码换成自己提前注册好的,否则登录不上。

requests库自动保存cookie,不用再单独设置。

import requests

conn = requests.session()
url = ‘http://bbs.chinaunix.net/member.php?mod=logging&action=login&loginsubmit=yes&loginhash=LIcAc‘
postdata = {
    ‘username‘:‘zhaoxn04‘,
    ‘password‘:‘wobugaosuni2004‘
}
headers = {
            ‘User-Agent‘: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36‘}
rep = conn.post(url, data=postdata,headers=headers)
with open(‘1.html‘, ‘wb‘) as f:
    f.write(rep.content)

url1 = ‘http://bbs.chinaunix.net/thread-4246512-1-1.html‘
rep1 = conn.get(url1, headers=headers)
with open(‘2.html‘, ‘wb‘) as f:
    f.write(rep1.content)
时间: 2024-08-08 04:22:19

Python-爬虫-requests库用语post登录的相关文章

python爬虫---requests库的用法

requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下,正常则说明可以开始使用了. 基本用法: requests.get()用于请求目标网站,类型是一个HTTPresponse类型 import requests response = requests.get('http://www.baidu.com')print(response.status_c

Python 爬虫—— requests BeautifulSoup

本文记录下用来爬虫主要使用的两个库.第一个是requests,用这个库能很方便的下载网页,不用标准库里面各种urllib:第二个BeautifulSoup用来解析网页,不然自己用正则的话很烦. requests使用,1直接使用库内提供的get.post等函数,在比简单的情况下使用,2利用session,session能保存cookiees信息,方便的自定义request header,可以进行登陆操作. BeautifulSoup使用,先将requests得到的html生成BeautifulSo

爬虫requests库的方法与参数

爬虫requests库的方法与参数 import requests """ # 1. 方法 requests.get requests.post requests.put requests.delete ... requests.request(method='POST') """ # 2. 参数 """ 2.1 url 2.2 headers 2.3 cookies 2.4 params 2.5 data,传请求体

解决python爬虫requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443)问题

爬虫时报错如下: requests.exceptions.SSLError: HTTPSConnectionPool(host='某某某网站', port=443): Max retries exceeded with url: /login/ (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify fail

[爬虫] requests库

requests库的7个常用方法 requests.request() 构造一个请求,支撑以下各种方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET requests.head() 获取HTML网页头信息的方法,对应于HTTP的HEAD requests.post() 向HTML网页提交POST请求的方法,对应于HTTP的POST requests.put() 向HTML网页提交PUT请求的方法,对应于HTTP的PUT requests.patch(

python爬虫19 | 遇到需要的登录的网站怎么办?用这3招轻松搞定!

你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作 当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 小帅b把这几招传授给你 让你以后从容应对 那么 接下来就是 学习 python 的正确姿势 登录的常见方法无非是这两种 1.让你输入帐号和密码登录 2.让你输入帐号密码+验证码登录 今天 小帅b先跟你说说第一种 需要验证码的咱们下一篇再讲 第一招 Cookie大法 你平常在上某个不为人知的网站的时候 是不是发现你只要登录一次 就可以一直看到你想要的内容 过了一阵子才需要再次登

python爬虫(下)--模拟登录与Captcha识别

前言 之前在 python爬虫(上)–请求--关于模拟浏览器方法,中我挖了一个坑,时隔一个多月,趁着最近有点空,我想是时候填填坑了,总结总结了,不然真的就忘了 验证码 虽然之前挖坑的那篇已经说了一些,现在还是稍微说一说. 在模拟登录中,其实让写爬虫的人疼头就是验证码,只要能破掉验证码,那么登录不是问题. 验证码(Chaptcha)内容从英文字符和数字识别,到数字加减乘除,再到汉字的出现,后面还有12306的看图识别,到现在的新型的基于人的行为的谷歌的reCaptcha,验证码也是经历了很长时间的

基于python的request库,模拟登录csdn博客

以前爬虫用urllib2来实现,也用过scrapy的爬虫框架,这次试试requests,刚开始用,用起来确实比urllib2好,封装的更好一些,使用起来简单方便很多. 安装requests库     最简便的方法就是使用pip来安装:pip install requests:如果需要安装特定版本,则在后面加上版本号即可:pip install requests == 1.9.7,这样就搞定了. 快速上手的小例子 下面说一个最简单的例子: 第一行,引入requests库,这是必然的. 第二行,通过

python中requests库使用方法详解

一.什么是Requests Requests 是?ython语?编写,基于urllib,采?Apache2 Licensed开源协议的 HTTP 库.它? urllib 更加?便,可以节约我们?量的?作,完全满?HTTP测试需求. ?句话--Python实现的简单易?的HTTP库 二.安装Requests库 进入命令行win+R执行 命令:pip install requests 项目导入:import requests 三.各种请求方式 直接上代码,不明白可以查看我的urllib的基本使用方法