使用 python 破除网页限制

原创 2004年09月01日 10:59:00

        昨天找到一个比较好的人工智能网站, 其中有一些很不错的 prolog 文章,我很感兴趣。文中有很多示例程序,可是网页的右键被禁止了,也不能选择,不能保存,不能察看源代码!!

       实在不爽,信息本来就要共享嘛!

       只好发扬下 hack 精神,冲破限制。还好,有 python 方便多了。

       网页中增加限制,无非是在 html 中设置脚本,既然浏览器可以显示出来,就一定能得到它的文本。

第一步,在 python shell 中执行:

>>> import urllib
>>> urllib.urlretrieve("http://www.chinaai.org/Article_Show.asp?ArticleID=315","c:/tmp.html")

urlretrieve 可以把一个网页保存到本地文件。

第二步,分析这个 tmp.html 文件,发现其中的  < body > 标签比较恶心:

body leftmargin=0 topmargin=0 onmousemove='HideMenu()' oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false" onmouseup="document.selection.empty()"

把这个标签换成比较干净的:body leftmargin=0 topmargin=0 onmousemove='HideMenu()'

(注意, < > 在这里省略了)

浏览这个文件, ok 限制解除。

第三步, 自动下载网页,进行“净化”处理, 编写一个python  程序:

import urllib

urls = {'http://www.chinaai.org/Article_Show.asp?ArticleID=315':'prolog2.html'}

new_tag = ""

for url in urls:
    filename = urls[url]
    urllib.urlretrieve(url,filename)
    f = open(filename,'r')
    content = f.read()
    f.close()
    l_pos = content.find('<body')

    r_pos = content.find('>', l_pos)
    cont1 = content[:l_pos]
    cont2 = content[r_pos + 1:]
    content = cont1 + new_tag + cont2
    f = open('tmp.html','w')
    f.write(content)
    f.close()

程序中 urls 是一个 字典,里面是 url 和 相应的本地文件名, 使用者可以根据自己的情况添加。

 

注意,这个程序是专门针对这个网站的, 对于其他的网站,可能使用的方法会有不同,但是按照上面的步骤,相信大家都能搞定。

 

我们的口号是,“还我自由!”

分享一个MAC下绕开百度网盘限速下载的方法,三步操作永久生效

相信大家都比较困惑,百度网盘客户端限速后一般只有几十K的下载速度,Windows有百度网盘破解版,但MAC的破解版似乎不存在,要提速的话,一般的做法是开超级会员(27元/月),身为程序员的我们,是不是...
  • Fabulous1111
  • Fabulous1111
  • 2017年11月14日 20:24
  • 9966

爬虫突破封禁的6种常见方法

在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人(bots)。最常用的方法是写一个自动化程序向网络...
  • WHACKW
  • WHACKW
  • 2016年05月27日 09:26
  • 1651

突破python爬虫限制种种

用python爬虫抓站的一些技巧总结 zz 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮...
  • pzlsun
  • pzlsun
  • 2014年05月04日 18:24
  • 1229

7 python 动态绑定,@property的使用__slots_限制class的属性以及多重继承

1 动态绑定属性和方法class student(object): passs = student() s.name = 'huxiang'#动态绑定一个属性print s.namehuxia...
  • qq_16949707
  • qq_16949707
  • 2016年12月09日 14:05
  • 246

使用python实现openvpn的登录次数限制

linux上搭建的openvpn openvpn使用mysql进行用户的验证 通过对openvpn日志的监控,实现对openvpn登录失败5次的用户进行锁定,一天后自动解锁#!/usr/bin/e...
  • mayifan0
  • mayifan0
  • 2017年02月10日 14:29
  • 698

Javascript限制网页只能在微信内置浏览器中访问

最近正在开发一个微信公众账号,其中有一项功能是用户发送文字消息给公众号,然后公众号返回图文消息给用户,用户再点击图文消息即可跳转到一个网页链接,在微信的内置浏览器中打开。那么问题就来了,这个网页首先涉...
  • gnsydss
  • gnsydss
  • 2015年01月05日 14:16
  • 440

jquery出现“为了有利于保护安全性,IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件。请单击这里获取选项...”的解决办法

为了有利于保护安全性,IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件。请单击这里获取选项... 方法一: 在本地调试html页,如果其中包含js或flash,IE经常会提示“IE...
  • GoodShot
  • GoodShot
  • 2012年08月30日 09:50
  • 4006

通过ISA限制域内用户访问网页视频

通过ISA限制域内用户访问网页视频 在上班时间开启网页视频会严重影响企业内部的网速,很多企业都希望在上班时间内禁止用户访问网站内的视频。虽然在市面上有专门的软件可以达到此类效果,但均需要收取额外费用...
  • canway888
  • canway888
  • 2011年10月08日 17:16
  • 1157

vb.net 教程 12-3 HtmlElement类 8 突破网页限制

这几节的代码都是以《vb.net 教程 20-2 WebBrowser高级用法 2 HtmlElement类 3》一节为样例的, 其中1是对是否输入了姓名做了限制,2是对输入年龄的长度做了限制(最大长...
  • UruseiBest
  • UruseiBest
  • 2017年08月02日 13:21
  • 281

网页表单Input的高级限制级用

1.取消按钮按下时的虚线框 在input里添加属性值 hideFocus 或者 HideFocus=true 2.只读文本框内容 在input里添加属性值 readonly 3.防止退...
  • kingkongII
  • kingkongII
  • 2013年08月28日 19:14
  • 415
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用 python 破除网页限制
举报原因:
原因补充:

(最多只允许输入30个字)