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之一个免费的实验室
Sep 14 Python
用python 制作图片转pdf工具
Jan 30 Python
python处理大数字的方法
May 27 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
windows下添加Python环境变量的方法汇总
May 14 Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
自定义django admin model表单提交的例子
Aug 23 Python
python 魔法函数实例及解析
Sep 25 Python
python入门之算法学习
Apr 22 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设计模式中工厂模式详细介绍
2013/05/15 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
Python实现的Excel文件读写类
2015/07/30 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
运动会领导邀请函
2014/01/10 职场文书
作风建设演讲稿
2014/05/23 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
师德师风自我评价范文
2014/09/11 职场文书
干部考核工作总结
2015/08/12 职场文书
会议主持词通用版
2019/04/02 职场文书
Python中的变量与常量
2021/11/11 Python
教你nginx跳转配置的四种方式
2022/07/07 Servers