哈哈哈,模拟登录成功啦啦啦啦啦~~~~~

重要的事本来要说三遍,不过还是算了==

先上效果图:

众所周知,很多网站都设置了登录之后才能获取查看页面的权利,因此模拟登录成了爬取信息的第一步,这一步成功了,嘿嘿,just do it!

好,废话不多说,直接说重点:

首先,你应该要了解网站登录的流程以及你需要post的信息,以豆瓣为例:

source:movie
redir:https://movie.douban.com/mine?status=collect
form_email:username
form_password:password
captcha-solution:dress
captcha-id:6rP40CbJzNgdJuqOgM3Y6wNs:en
login:登录

这就是你需要提交的信息了,包括用户名和密码,以及验证码和验证码的ID,看到这可能有人会想我怎么知道验证码的ID,各位放心,在页面加载时就已经到客户端这边来了,也就是说你可以直接从浏览器中看到,是不是很炫酷!

第二步,需要了解一些requests这个库了,因为requests直接省去了urllib和urllib2的很多很多很多麻烦,省去了很多冗余的代码,正如官网所言,Requests:HTTP for Human,这是给人用的==

官网地址:Requests

如果你之前有了解过RE和bs4,好了,直接coding吧!

不然的话最好去了解一下bs,也省了不少的麻烦,帮助文档地址:BeautifulSoup

Talking is cheap,show me the code. Now is ShowTime!

# -*- encoding:utf-8 -*-
##############################
__author__ = "Andrewseu"
__date__ = "2015/8/3"
###############################import requests
from bs4 import BeautifulSoup
import urllib
import reloginUrl = 'http://accounts.douban.com/login'
formData={"redir":"http://movie.douban.com/mine?status=collect","form_email":username,"form_password":password,"login":u'登录'
}
headers = {"User-Agent":'Mozilla/5.0 (Windows NT 6.1)\AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36'}
r = requests.post(loginUrl,data=formData,headers=headers)
page = r.text
#print r.url'''获取验证码图片'''
#利用bs4获取captcha地址
soup = BeautifulSoup(page,"html.parser")
captchaAddr = soup.find('img',id='captcha_image')['src']
#利用正则表达式获取captcha的ID
reCaptchaID = r'<input type="hidden" name="captcha-id" value="(.*?)"/'
captchaID = re.findall(reCaptchaID,page)
#print captchaID
#保存到本地
urllib.urlretrieve(captchaAddr,"captcha.jpg")
captcha = raw_input('please input the captcha:')formData['captcha-solution'] = captcha
formData['captcha-id'] = captchaIDr = requests.post(loginUrl,data=formData,headers=headers)
page = r.text
if r.url=='http://movie.douban.com/mine?status=collect':print 'Login successfully!!!'print '我看过的电影','-'*60#获取看过的电影soup = BeautifulSoup(page,"html.parser")result = soup.findAll('li',attrs={"class":"title"})#print resultfor item in result:print item.find('a').get_text()
else:print "failed!"

有任何不懂的地方,欢迎和我交流!

更新:测试发现,有些时候是不需要输入验证码的,因此如果有读者发现在获取验证码时失败,可以在42行加一个判断“if r.url!='http://movie.douban.com/mine?status=collect':”问题解决!

Python爬虫之模拟登录豆瓣获取最近看过的电影相关推荐

  1. python爬虫-selenium模拟登录豆瓣获取cookies给requests使用

    1. selenium如何切换到iframe中操作 import time from selenium import webdriverurl = "https://www.douban.c ...

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

    如何抓取 WEB 页面:http://blog.csdn.net/chenguolinblog/article/details/45024643 github 上一个关于模拟登录的项目:https:/ ...

  3. Python爬虫——Cookie模拟登录

    文章目录 Python爬虫--Cookie模拟登录 1.Cookie模拟登录 2.Handler处理器 Python爬虫--Cookie模拟登录 1.Cookie模拟登录 现在很多网站需要用户成功登录 ...

  4. Python爬虫——简易模拟登录【以科文学院教务官网为例】

    实战:对科文教务系统进行拦截 科文学院教务系统内网地址:http://10.110.240.221/jsxsd/ 进入官网后再打开拦截. 输入一个错误的账号密码进行试探. 点击登陆按钮,进行拦截,可以 ...

  5. Python爬虫--人人网模拟登录cookie(四)

    文章目录 模拟登录 一.人人网模拟登录 1.1 验证码识别 1.2 发送post请求 1.3 模拟登录cooki操作 1.4 cookie 1. 手动cookie处理 2. 自动处理 二.代理讲解 总 ...

  6. python爬虫分析模拟登录时会变的参数_Python爬虫之urllib模拟登录及cookie的那点事...

    在web  sprider crawl过程中,许多网站都需要登录后才能访问,一般如果我们不用爬虫框架的前提下,常规用的就两个库 ,urllib库和requests库,本文将用最基础的urllib库,以 ...

  7. Python爬虫之模拟登录某招聘平台(拉勾网)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:用户2769421 ( 想要学习Python?Pyth ...

  8. Python爬虫:模拟登录知乎完全详解

    [源码在最下面] 知乎登录分为邮箱登录和手机登录两种方式,通过浏览器的开发者工具查看,我们通过不同方式登录时,网址是不一样的.邮箱登录的地址email_url = 'https://www.zhihu ...

  9. Python爬虫10-Selenium模拟登录

    目录 10.1Selenium和PhantomJS和headless-chrome 10.1.1Selenium的概念和安装 10.1.2浏览器的选择和安装 10.2Selenium和PhantomJ ...

最新文章

  1. React文档(十四)深入JSX
  2. Socket拉屎模型之epoll
  3. 在Java中使用分隔符(拆分的对立面)连接数组元素的快速简便方法
  4. python程序在安卓上如何运行-在 android 上运行 python 的方法
  5. 使用pickle模块打包停用词表,加快处理文本数据的速度
  6. 【xshell】xshell 自动换行设置
  7. golang中包互相引用的解决方法
  8. 556. 下一个更大元素 III
  9. idea 导入项目时 “Import project from external model” 和 “Create project from existing sources”的区别
  10. 学习libpcap库,写例子代码--tcp_config.txt
  11. 《App后台开发运维和架构实践》勘误
  12. Cortex-M3 (NXP LPC1788)之IIC控制器
  13. html caption 靠左,HTML caption标签 align属性
  14. Access键盘快捷键大全(一)
  15. 2016——大数据版图
  16. 手势控制鼠标的操作(不指屏幕实现简单触屏)
  17. 【华为诺亚方舟实验室】2021届毕业生招聘
  18. networkx_to_metis
  19. 用“牛顿迭代法”求根号2的近似值
  20. 手把手教你快速构建一份全国疫情分布地图

热门文章

  1. TS之类的属性和方法
  2. QQ 空间相册新功能
  3. 智能卡操作系统的程序代码结构
  4. 甲骨文oracle云计算迎来转机
  5. 服务器磁盘爆满,好捉急呀,如何清理MySQL日志?
  6. 7 幸运数字的因子个数
  7. 8 Hibernate:关联映射(Associations)
  8. CentOS 6 忘记密码,修改密码
  9. [奔跑吧 Linux内核][学习记录]编译内核-实验1-2-[环境以及参考]
  10. pandas库随笔——更改Series与DataFrame的列标签