Python网页抓取、模拟登录

From: http://www.cnblogs.com/bboy/archive/2010/10/29/1864537.html

用python抓取网页是非常简单的事,简单的几行代码就可以解决。。。这里稍微记录一下

 

需要引用的包有主要是 urllib2,urllib也可以引入,具体 看代码

 

#-------------------------------------------------------------------------------
#
 Name:        模拟登录web
#
 Purpose:
#
#
 Author:      huwei
#
#
 Created:     26/10/2010
#
 Copyright:   (c) huwei 2010
#
 Licence:     <your licence>
#
-------------------------------------------------------------------------------
#
!/usr/bin/env python

import time,urllib2,urllib

def main():
    
    
#登录博客园
    loginCNblogs()
    
pass



#登录博客园
def loginCNblogs():
    
try:
        
#设置 cookie
        cookies = urllib2.HTTPCookieProcessor()
        opener 
= urllib2.build_opener(cookies)
        urllib2.install_opener(opener)

        parms 
= {"tbUserName":"用户名","tbPassword":"密码","__EVENTTARGET":"btnLogin","__EVENTARGUMENT":"",
        
"__VIEWSTATE":"/wEPDwULLTExMDE0MzIzNDRkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQtjaGtSZW1lbWJlcmcJekJlt5rFwfnjeMMnX9V58Xhg",
        
"__EVENTVALIDATION":"/wEWBQKit6iCDALyj/OQAgK3jsrkBALR55GJDgKC3IeGDK6TQlRlirS2Zja1Lmeh02u4XMwV",
        
"txtReturnUrl":"http://bboy.cnblogs.com"}

        loginUrl 
= "http://passport.cnblogs.com/login.aspx"
        login 
= urllib2.urlopen(loginUrl,urllib.urlencode(parms))
        
        
        
#print(unicode(login.read(),"utf8"))

        
#显示配置页面
        avatar = urllib2.urlopen("http://home.cnblogs.com/set/avatar/")
        
#print(avatar.read().decode("utf8"))
    except Exception,e:
        
print(e)
    
pass


if __name__ == '__main__':
    main()

 

 

获取 网页很简单 直接 urllib2.urlopen(url).read() 就可以得到网页源码

这里是抓取登录后的页面,所有开头需要设置cookie

cookies = urllib2.HTTPCookieProcessor()
opener 
= urllib2.build_opener(cookies)
urllib2.install_opener(opener)

 

设置完 cookie以后 再使用 urllib2.urlopen()方法就可以带上你登录成功的cookie了


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

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

相关文章

深入分析Flex [Bindable] (总结)

[Bindable]大概又是Flex用得最多的元数据了。刚开始用用确实好简单&#xff0c;效率真是没的说。不过这几天用着却碰到了些问题&#xff0c;我自己搜集了些资料&#xff0c;想着有必要在blog里总结一下吧。啥是元数据&#xff08;metadata&#xff09;知道就跳过吧。今天不晓得…

爬取IMDBTOP250

在网上看到有人利用pythonbeautifulsoup爬取豆瓣Top250 试着自己模仿这个做了个爬取IMDB的&#xff0c; 可惜只能爬取到11个。 后来检查了超久&#xff0c; 才发现&#xff0c; soupBeautifulSoup(contents)这里&#xff0c;内容不完整&#xff0c;只能到11个电影为止。 代码如…

Vue Video.js播放m3u8视频流格式(video+videojs-contrib-hl)

Vue Video.js播放m3u8视频流格式&#xff08;videovideojs-contrib-hl&#xff09; videojs中文文档详解 Vue.js中this.$nextTick()的使用 videojs画中画小窗口播放问题&#xff1f;

apache mysql python win10_Win10 MySQL-python

在Windows 下调试 Python 还是挺麻烦的.通过PyCharm 来安装个MySQL-python 的库都搞了大半天.分别尝试 1.2.3,1.2.4和1.2.5都有不同的错误.需要解决的问题就是这个:“Cannot open include file: config-win.h: No such file or directory” while installing mysql-python"…

IT宅男们,有没有什么技术让你觉得相见恨晚?

无意中想起SQLite&#xff0c;于是发起了这么一个话题&#xff0c;感谢各位朋友的参与&#xff0c;我把大家的话收集一下&#xff0c;放在这里。 sshg PY算一个吧。当初看了一个下午就决定ditch Perl了。Haskell算另一个吧。看到type class的时候&#xff0c;也是怦然心动。不…

MFC让窗口最前端显示

基于对话框的MFC应用程序&#xff0c;环境&#xff1a;Win XP VC2010。程序界面&#xff1a; 接着为IDC_CHECK1绑定一个BOOL类型的变量m_bShowTopmost&#xff0c;并添加BN_CLICKED事件响应函数&#xff1a; void CWorkHelperDlg::OnBnClickedCheck1() {UpdateData();if(m_bSh…

Request请求:Failed to execute ‘setRequestHeader‘ on ‘XMLHttpRequest‘: String contains non ISO-8859-1 c

Request请求&#xff1a;Failed to execute ‘setRequestHeader’ on ‘XMLHttpRequest’: String contains non ISO-8859-1 code point.问题解决

HDU 1564 找规律博弈

题目大意是&#xff1a; 从n*n的方格角落的一个起点出发&#xff0c;每次移到上下左右一个未曾到达过的位置&#xff0c;谁不能走了谁就输了 想了好久都想不出&#xff0c;看了大神的题解 Orz了 果然博弈不是脑残的游戏啊... 这里从起点出发&#xff0c;将所有方格两两连接&…

庖丁解牛ASP.NET3.5控件和组件开发技术-(1)服务器控件概述

服务器控件概述 1.服务器控件的类型以及ASP.NET控件开发的系统基类 Control,WebControl,CompositeControl,DataBoundControl,HierarchicalDataBoundControl,HierarchichicalDataSourceControl, ListControl,BaseValidator. 2,控件的生命周期&#xff0c; 服务器控件的生命周期与…

gnome硬盘分析_解决八种Linux硬盘问题的技巧

不能在Linux或者类UNIX系统的硬盘上写入数据&#xff1f;想解决服务器上磁盘损坏的问题吗&#xff1f;想知道你为什么总是在屏幕上看到“磁盘已满”的字眼吗&#xff1f;想学习处理这些问题的办法吗&#xff1f;试试一下这8个解决Linux及UNIX服务器硬盘问题的小贴士吧。#1 - 错…

HTML DOM console.table() 方法

HTML DOM console.table() 方法

百度之后,电子银行还安全么?

用户&#xff1a;百度在哪里啊&#xff1f;百度在哪里&#xff1f;***&#xff1a;百度就在小朋友的心里&#xff01;用户&#xff1a;银行在哪里啊&#xff1f;银行在哪里&#xff1f;***&#xff1a;银行就在我家里&#xff0c;这里没有防盗门啦&#xff01;这里没有监控啦。…

利用IDA6.6进行apk dex代码动态调试

网上公开IDA6.6已经有一段时间&#xff0c;这个版本有个好处就是可以动态调试java代码。正好现在需要动态调试&#xff0c;所以顺便练习一下。 根据android的官方文档&#xff0c;如果要调试一个apk里面的dex代码&#xff0c;必须满足以下两个条件中的任何一个&#xff1a; 1.a…

十大经典排序算法python_十大经典排序算法的算法描述和代码实现

这里详细讲解了十大经典算法的分类&#xff0c;例如交换排序、插入排序、选择排序等比较类排序&#xff0c;以及计数排序、桶排序和基数排序的非比较类排序&#xff0c;分析了各种排序算法的复杂度和稳定性&#xff0c;还有JAVA代码的详细实现。对冒泡排序、插入排序、选择排序…

oracle日志查看问题?

From: http://www.iteye.com/problems/34438 假如我在存储过程中有一条dbms_output.put_line(s)语句;当我执行这个存储过程的时候。是否这个打印会存储到系统日志里&#xff1f;如果存储到系统日志里&#xff0c;或者是某个表中。我该怎么查看那&#xff1f; 会存入系统表中.查…

[react] react是哪个公司开发的?

[react] react是哪个公司开发的&#xff1f; facebook 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

js执行shell命令的几种方式(Node)

js执行shell命令的几种方式&#xff08;Node&#xff09; nodejs 执行cmd或shell命令 Nodejs调用shell脚本 nodejs调用shell

换了一块硬盘

不知不觉T400的小黑已经伴我走过了一年的时间&#xff0c;终于今天要给它换一块比较快的硬盘&#xff0c;7200.4希捷笔记本硬盘&#xff0c;下面是测试的数据 在网络查了下&#xff0c;好像性能还不错&#xff0c;只是显卡性能一般了一些。。。

Linux系统安装Nodejs

Linux系统安装Nodejs

模态对话框与非模态对话的几种销毁方法与区别

From: http://renjwjx.blog.51cto.com/811549/191320/ 前几天发现自己的程序中使用非模态对话框&#xff0c;Debug版本有警告提示如下&#xff1a; Warning: calling DestroyWindow in CWnd::~CWnd OnDestroy or PostNcDestroy in derived class will not be called 由于是Warn…