Python爬虫之模拟登录豆瓣获取最近看过的电影
哈哈哈,模拟登录成功啦啦啦啦啦~~~~~
重要的事本来要说三遍,不过还是算了==
先上效果图:
众所周知,很多网站都设置了登录之后才能获取查看页面的权利,因此模拟登录成了爬取信息的第一步,这一步成功了,嘿嘿,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爬虫之模拟登录豆瓣获取最近看过的电影相关推荐
- python爬虫-selenium模拟登录豆瓣获取cookies给requests使用
1. selenium如何切换到iframe中操作 import time from selenium import webdriverurl = "https://www.douban.c ...
- Python 模块 requests 模拟登录豆瓣 并 发表动态
如何抓取 WEB 页面:http://blog.csdn.net/chenguolinblog/article/details/45024643 github 上一个关于模拟登录的项目:https:/ ...
- Python爬虫——Cookie模拟登录
文章目录 Python爬虫--Cookie模拟登录 1.Cookie模拟登录 2.Handler处理器 Python爬虫--Cookie模拟登录 1.Cookie模拟登录 现在很多网站需要用户成功登录 ...
- Python爬虫——简易模拟登录【以科文学院教务官网为例】
实战:对科文教务系统进行拦截 科文学院教务系统内网地址:http://10.110.240.221/jsxsd/ 进入官网后再打开拦截. 输入一个错误的账号密码进行试探. 点击登陆按钮,进行拦截,可以 ...
- Python爬虫--人人网模拟登录cookie(四)
文章目录 模拟登录 一.人人网模拟登录 1.1 验证码识别 1.2 发送post请求 1.3 模拟登录cooki操作 1.4 cookie 1. 手动cookie处理 2. 自动处理 二.代理讲解 总 ...
- python爬虫分析模拟登录时会变的参数_Python爬虫之urllib模拟登录及cookie的那点事...
在web sprider crawl过程中,许多网站都需要登录后才能访问,一般如果我们不用爬虫框架的前提下,常规用的就两个库 ,urllib库和requests库,本文将用最基础的urllib库,以 ...
- Python爬虫之模拟登录某招聘平台(拉勾网)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:用户2769421 ( 想要学习Python?Pyth ...
- Python爬虫:模拟登录知乎完全详解
[源码在最下面] 知乎登录分为邮箱登录和手机登录两种方式,通过浏览器的开发者工具查看,我们通过不同方式登录时,网址是不一样的.邮箱登录的地址email_url = 'https://www.zhihu ...
- Python爬虫10-Selenium模拟登录
目录 10.1Selenium和PhantomJS和headless-chrome 10.1.1Selenium的概念和安装 10.1.2浏览器的选择和安装 10.2Selenium和PhantomJ ...
最新文章
- React文档(十四)深入JSX
- Socket拉屎模型之epoll
- 在Java中使用分隔符(拆分的对立面)连接数组元素的快速简便方法
- python程序在安卓上如何运行-在 android 上运行 python 的方法
- 使用pickle模块打包停用词表,加快处理文本数据的速度
- 【xshell】xshell 自动换行设置
- golang中包互相引用的解决方法
- 556. 下一个更大元素 III
- idea 导入项目时 “Import project from external model” 和 “Create project from existing sources”的区别
- 学习libpcap库,写例子代码--tcp_config.txt
- 《App后台开发运维和架构实践》勘误
- Cortex-M3 (NXP LPC1788)之IIC控制器
- html caption 靠左,HTML caption标签 align属性
- Access键盘快捷键大全(一)
- 2016——大数据版图
- 手势控制鼠标的操作(不指屏幕实现简单触屏)
- 【华为诺亚方舟实验室】2021届毕业生招聘
- networkx_to_metis
- 用“牛顿迭代法”求根号2的近似值
- 手把手教你快速构建一份全国疫情分布地图