Python 模块 requests 模拟登录豆瓣 并 发表动态

 

如何抓取 WEB 页面:http://blog.csdn.net/chenguolinblog/article/details/45024643
github 上一个关于模拟登录的项目https://github.com/xchaoinfo/fuck-login
Python爬虫之模拟登录总结:http://blog.csdn.net/churximi/article/details/50917322
爬虫库 Python Requests 如何模拟用户登录?:https://segmentfault.com/q/1010000002421773
python爬虫实践之模拟登录:https://www.2cto.com/kf/201401/275152.html
Python 模拟登录知乎:http://blog.csdn.net/Marksinoberg/article/details/69569353
使用python编写简单网络爬虫技巧总结:http://armsword.com/2014/03/31/python-in-crawler

 

 

模拟登录这块一直没搞过,主要是对 模拟登陆的流程不太熟悉,网上找了好多资料,感觉熟悉个大概,就先用豆瓣 试试。

模拟登陆的重点,在于找到表单真实的提交地址,然后携带cookie,post数据即可,只要登陆成功,我们就可以访问其他任意网页,从而获取网页内容。

一个请求,只要正确模拟了method,url,header,body 这四要素,任何内容都能抓下来,而所有的四个要素,只要打开浏览器-审查元素-Network就能看到!

验证码这一块,现在主要是先把验证码的图片保存下来,手动输入验证码,后期研究下python自动识别验证码。

但是验证码保存成本地图片,看的不不太清楚(有时间在改下),可以把验证码的 url 地址在浏览器中打开,就可以看清楚验证码了。

主要实现 登录豆瓣,并发表一句话

 

# -*- coding:utf-8 -*-import re
import requests
from bs4 import BeautifulSoupclass DouBan(object):def __init__(self):self.__username = "豆瓣帐号" # 豆瓣帐号self.__password = "豆瓣密码" # 豆瓣密码self.__main_url = "https://www.douban.com"self.__login_url = "https://www.douban.com/accounts/login"self.__proxies = {"http": "http://172.17.18.80:8080","https": "https://172.17.18.80:8080"}self.__headers = {"Host": "www.douban.com","Origin": self.__main_url,"Referer": self.__main_url,"Upgrade-Insecure-Requests": "1","User-Agent": 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}self.__data = {"source": "index_nav","redir": "https://www.douban.com","form_email": self.__username,"form_password": self.__password,"login": u"登录"}self.__session = requests.session()self.__session.headers = self.__headersself.__session.proxies = self.__proxiespassdef login(self):r = self.__session.post(self.__login_url, self.__data)if r.status_code == 200:html = r.contentsoup = BeautifulSoup(html, "lxml")captcha_address = soup.find('img', id='captcha_image')['src']print captcha_address# 验证码存在if captcha_address:# 利用正则表达式获取captcha的IDre_captcha_id = r'<input type="hidden" name="captcha-id" value="(.*?)"/'captcha_id = re.findall(re_captcha_id, html)print captcha_id# 保存到本地with open('captcha.jpg', 'w') as f:f.write(requests.get(captcha_address, proxies=self.__proxies).content)captcha = raw_input('please input the captcha:')self.__data['captcha-solution'] = captchaself.__data['captcha-id'] = captcha_idr = self.__session.post(self.__login_url, data=self.__data)if r.status_code == 200:print "login success"data = {"ck": "NBJ2","comment": "模拟登录"}r = self.__session.post(self.__main_url, data=data)print r.status_codeelse:print "登录不需要验证码"# 不需要验证码的逻辑 和 上面输入验证码之后 的 逻辑 一样# 此处代码省略else:print "login fail", r.status_codepassif __name__ == "__main__":t = DouBan()t.login()pass

 

登录豆瓣帐号,可以看到说了一句话 “模拟登录”

 

 

 

 

 

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

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

相关文章

华为云BU总裁:如何把AI从噱头变为生产力?

来源&#xff1a;亿欧网 作者&#xff1a;张之颖“别跟着喊口号&#xff0c;少看朋友圈。…人工智能在中国被过分炒作了&#xff0c;现在国内人工智能已被娱乐化。不是做两个刷脸应用、搞一个APP就叫做人工智能。”华为云BU总裁郑叶来接受环球网记者的采访时表示&#xff0c;华…

DSA签名算法

文章目录前言一、DSA是什么&#xff1f;二、go语言实现前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、DSA是什么&#xff1f; DSA&#xff08;Digital Signature Algorithm&#xff0c;数字签名算法&#xff0c;用作数字签名标准的一部分&a…

Java并发编程实战~Actor 模型

Hello Actor 模型 Actor 模型本质上是一种计算模型&#xff0c;基本的计算单元称为 Actor&#xff0c;换言之&#xff0c;在 Actor 模型中&#xff0c;所有的计算都是在 Actor 中执行的。在面向对象编程里面&#xff0c;一切都是对象&#xff1b;在 Actor 模型里&#xff0c;一…

master分支删除文件_Git分支基础简介;创建分支;合并分支;删除分支;

目录为了演示&#xff1a;我们创建了一个本地仓库testBranch&#xff0c;一个远程仓库testBranchRe&#xff1a;1.当我们创建一个本地仓库的时候&#xff0c;这个本地仓库中就会有一个主分支&#xff0c;即master分支&#xff1b;2.每次提交&#xff0c;master就会向后移动一个…

跳动的菜单

<html> <head> <meta http-equiv"Content-Type" content"text/html; charsetgb2312" /> <title>模仿as效果的导航菜单</title> <style type"text/css"> <!-- a:link,a:visited { text-decoration: no…

Python 爬虫框架 - PySpider

Python爬虫进阶四之PySpider的用法&#xff1a;http://cuiqingcai.com/2652.html 网络爬虫剖析&#xff0c;以Pyspider为例&#xff1a;http://python.jobbole.com/81109 Python爬虫利器六之PyQuery的用法&#xff1a;https://cuiqingcai.com/2636.html 爬虫框架pyspider个人总…

AI技术加持,让协作机器人更安全

来源&#xff1a;机器人创新生态丨公众号来自众家新创公司与实验室的碰撞侦测与追踪技术&#xff0c;将使得在人类与其他移动物体周边的协作机器人更安全。一个美国圣地亚哥大学&#xff08;University of San Diego&#xff09;的团队便开发了一种更快速的算法&#xff0c;能协…

RSA签名算法

文章目录前言一、RSA是什么&#xff1f;前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、RSA是什么&#xff1f; RSA数字签名算法的过程为&#xff1a;A对明文m用解密变换作: (公钥用来加密&#xff0c;私钥用来解密&#xff0c;数字签名是用…

捕获异常_Recover捕获异常

“ 本文来源于《The Go Programming Language》”5.10. Recover捕获异常通常来说&#xff0c;不应该对panic异常做任何处理&#xff0c;但有时&#xff0c;也许我们可以从异常中恢复&#xff0c;至少我们可以在程序崩溃前&#xff0c;做一些操作。举个例子&#xff0c;当web服务…

仿msn弹出窗口

msnMessage.js文件代码&#xff1a; Code1 /** 2 ** 3 ** 类名&#xff1a;msnMessage 4 ** 功能&#xff1a;提供类似MSN消息框 5 ** 示例&#xff1a; 6 --------------------------------------------------------------------------------…

ECC签名算法

文章目录前言一、ECC是什么&#xff1f;二、go语言实现前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ECC是什么&#xff1f; ECC全称为“Ellipse Curve Ctyptography”&#xff0c;是一种基于椭圆曲线数学的公开密钥加密算法。椭圆曲线在密…

CPU诞生记|CPU制造全过程详解

来源&#xff1a;电子产品世界CPU(Centralprocessingunit)是现代计算机的核心部件&#xff0c;又称为“微处理器”。对于PC而言&#xff0c;CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。Intelx86架构已经经历了二十多个年头&#xff0c;而x86架构的CPU对我们大…

二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法

二维数组的创建及使用1、二维数组的创建2、二维数组初始化3、使用二维数组二维数组的创建声明二维数组的方法有两种&#xff0c;语法如下所示&#xff1a;数组元素类型 数组名字[ ][ ];数组元素类型[ ][ ] 数组名字;数组元素类型&#xff1a;决定了数组的数据类型&#xff0c;它…

Semaphore及其用法

1、Semaphore 是什么 Semaphore 通常我们叫它信号量&#xff0c; 可以用来控制同时访问特定资源的线程数量&#xff0c;通过协调各个线程&#xff0c;以保证合理的使用资源。 比如&#xff1a;停车场入口立着的那个显示屏&#xff0c;每有一辆车进入停车场显示屏就会显示剩余…

使用代理时服务变量的变化

一、没有使用代理服务器的情况&#xff1a; REMOTE_ADDR 您的 IP HTTP_VIA 没数值或不显示 HTTP_X_FORWARDED_FOR 没数值或不显示 二、使用透明代理服务器的情况&#xff1a;Transparent Proxies REMOTE_ADDR 最后一个代理服务器 IP HTTP_VIA 代理服务器 …

SM2算法

文章目录前言一、SM2是什么&#xff1f;二、go语言实现前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、SM2是什么&#xff1f; SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。 SM2算法和RSA算法都是公钥密码算法&#xf…

rocketmq 消息 自定义_跟我学RocketMQ[1-4]之消息消费及支持spring

博客地址:朝闻道​www.wuwenliang.net本文我将继续讲解如何使用DefaultMQPushConsumer对RocketMQ中的消息进行消费&#xff0c;同时在文章的第二部分将继续带领读者朋友对DefaultMQPushConsumer进行薄封装&#xff0c;让我们在Spring中更容易对消息进行消费。DefaultMQPushCons…

sklearn 逻辑回归Demo

逻辑回归案例 假设表示 基于上述情况&#xff0c;要使分类器的输出在[0,1]之间&#xff0c;可以采用假设表示的方法。 设 h θ ( x ) g ( θ T x ) h_θ (x)g(θ^T x) hθ​(x)g(θTx)&#xff0c; 其中 g ( z ) 1 ( 1 e − z ) g(z)\frac{1}{(1e^{−z} )} g(z)(1e−z)1​…

URL原理、URL编码、URL特殊字符、输入URL到页面显示

​From&#xff1a;http://blog.csdn.net/zmx729618/article/details/51381655 From&#xff1a;http://www.cnblogs.com/coco1s/p/5038412.html HTML URL 编码参考手册&#xff1a;https://www.w3cschool.cn/htmltags/html-urlencode.html http://www.w3school.com.cn/t…

记忆模糊、记忆泛化的关键分子开关被发现

来源&#xff1a;brainnews2018年3月12日&#xff0c;Nature Medicine杂志在线刊登了麻省总医院Amar Sahay研究组的最新重要工作&#xff0c;他们发现了一种细胞骨架蛋白Actin-binding LIM protein 3 (ABLIM3)&#xff0c;降低该蛋白的表达水平可以增强海马齿状回细胞&#xff…