python 自动提交和抓取网页


Posted in Python onJuly 13, 2009

下面是用python写的,使用lxml来做html分析,从网上看到的,说是分析速度最快的哦,不过没有验证过。好了,上代码。

import urllib 
import urllib2 
import urlparse 
import lxml.html 
def url_with_query(url, values): 
parts = urlparse.urlparse(url) 
rest, (query, frag) = parts[:-2], parts[-2:] 
return urlparse.urlunparse(rest + (urllib.urlencode(values), None)) 
def make_open_http(): 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor()) 
opener.addheaders = [] # pretend we're a human -- don't do this 
def open_http(method, url, values={}): 
if method == "POST": 
return opener.open(url, urllib.urlencode(values)) 
else: 
return opener.open(url_with_query(url, values)) 
return open_http 
open_http = make_open_http() 
tree = lxml.html.fromstring(open_http("GET", "https://3water.com").read()) 
form = tree.forms[0] 
form.fields["q"] = "eplussoft" 
form.action="https://3water.com/search" 
response = lxml.html.submit_form(form,open_http=open_http) 
html = response.read() 
doc = lxml.html.fromstring(html) 
lxml.html.open_in_browser(doc)

恩,验证码是个大问题。还有今天看了一些百度贴吧上的东西,更是坏了心情,它的验证码是用ajax取的图片,这就更加麻烦了。不过好像现在大多数的论坛和博客的验证码都是这样的了。这样第一次抓取下来的页面就不会包含有验证码图片了,更不要说分析验证码图片了。要解决的问题还是很多的。。。
Python 相关文章推荐
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
Python中super的用法实例
May 28 Python
Python外星人入侵游戏编程完整版
Mar 30 Python
Tensorflow之Saver的用法详解
Apr 23 Python
解决DataFrame排序sort的问题
Jun 07 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
ipython和python区别详解
Jun 26 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 Python
python self,cls,decorator的理解
Jul 13 #Python
python 解析html之BeautifulSoup
Jul 07 #Python
打印出python 当前全局变量和入口参数的所有属性
Jul 01 #Python
python 查找文件夹下所有文件 实现代码
Jul 01 #Python
python 运算符 供重载参考
Jun 11 #Python
python getopt 参数处理小示例
Jun 09 #Python
用python分割TXT文件成4K的TXT文件
May 23 #Python
You might like
谈谈新手如何学习PHP
2006/12/14 PHP
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
PHP安全性漫谈
2012/06/28 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
JavaScript"模拟事件"的注意要点详解
2019/02/13 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
python下10个简单实例代码
2017/11/15 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python__new__内置静态方法使用解析
2020/01/07 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
《逃家小兔》教学反思
2014/02/23 职场文书
市场拓展计划书
2014/05/03 职场文书
运动会方队口号
2014/06/07 职场文书
高三毕业评语
2014/12/31 职场文书