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了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Python和Selenium可以实现对动态网页抓取。首先,确保您已经安装了Python 3.5和Selenium。如果没有安装,您可以通过使用pip命令来安装Selenium:pip3 install selenium。 接下来,您需要下载并配置PhantomJS。PhantomJS是一个无界面浏览器,可以用于模拟用户与网页的交互。您可以从官方网站下载PhantomJS,并将其解压到Python的Scripts目录下。 接下来,您可以使用以下代码来实现动态网页抓取: ```python from selenium import webdriver # 创建PhantomJS浏览器对象 driver = webdriver.PhantomJS() # 打开网页 driver.get('http://example.com') # 执行一些操作,例如点击按钮或滚动页面 # 获取页面内容 content = driver.page_source # 关闭浏览器 driver.quit() # 处理页面内容,提取所需信息 # ... ``` 在这个例子中,我们首先创建了一个PhantomJS浏览器对象,然后使用`get()`方法打开了一个网页。您可以在此之后执行一些其他操作,例如点击按钮或滚动页面。 最后,使用`page_source`属性获取页面内容,然后可以根据需要处理页面内容并提取所需信息。 请注意,Selenium还支持其他浏览器,如Chrome和Firefox。您可以根据自己的需要选择使用哪个浏览器。 希望这个回答能够帮助到您。请随时提问,如果您有任何进一步的疑问。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值