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 相关文章推荐
Python性能优化的20条建议
Oct 25 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python正则表达式分组概念与用法详解
Jun 24 Python
python 字典修改键(key)的几种方法
Aug 10 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
python使用循环打印所有三位数水仙花数的实例
Nov 13 Python
python web自制框架之接受url传递过来的参数实例
Dec 17 Python
如何基于python实现脚本加密
Dec 28 Python
keras和tensorflow使用fit_generator 批次训练操作
Jul 03 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
Jan 07 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同时支持GIF、png、JPEG
2006/10/09 PHP
PHP根据图片色界在不同位置加水印的方法
2015/07/01 PHP
Yii全局函数用法示例
2017/01/22 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
Prototype Class对象学习
2009/07/19 Javascript
jQuery EasyUI API 中文文档 - ComboGrid 组合表格
2011/10/13 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
python聊天程序实例代码分享
2013/11/18 Python
将Python的Django框架与认证系统整合的方法
2015/07/24 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
python取余运算符知识点详解
2019/06/27 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
电气专业应届生求职信
2013/11/01 职场文书
业务经理岗位职责
2013/11/11 职场文书
五型班组建设方案
2014/02/10 职场文书
一句话工作感言
2014/03/01 职场文书
2014年电教工作总结
2014/12/19 职场文书
自愿离婚协议书范本
2015/01/26 职场文书
2015年材料员工作总结
2015/04/30 职场文书