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编写暴力破解FTP密码小工具
Nov 19 Python
讲解Python中运算符使用时的优先级
May 14 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
python数据封装json格式数据
Mar 04 Python
python web基础之加载静态文件实例
Mar 20 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
Dec 14 Python
解决python ogr shp字段写入中文乱码的问题
Dec 31 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
Aug 09 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
python munch库的使用解析
May 25 Python
python数字类型和占位符详情
Mar 13 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 array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
jQuery 操作XML入门
2008/12/25 Javascript
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
微信小程序 wxapp内容组件 progress详细介绍
2016/10/31 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python实现ping指定IP的示例
2018/06/04 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
Python猴子补丁知识点总结
2020/01/05 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
利用pandas向一个csv文件追加写入数据的实现示例
2020/04/23 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
垃圾桶标语
2014/06/24 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
校本课程教学计划
2015/01/19 职场文书
解除租赁合同协议书
2016/03/21 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
python元组打包和解包过程详解
2021/08/02 Python
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android
JavaScript实现音乐播放器
2022/08/14 Javascript