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打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
python使用opencv进行人脸识别
Apr 07 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
May 17 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Python实现线性插值和三次样条插值的示例代码
Nov 13 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
Feb 11 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
Python中sys模块功能与用法实例详解
Feb 26 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
使用python创建生成动态链接库dll的方法
May 09 Python
用 python 进行微信好友信息分析
Nov 28 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/11/25 PHP
php定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP中16个高危函数整理
2019/09/19 PHP
菜单效果
2006/10/14 Javascript
javascript 写类方式之九
2009/07/05 Javascript
javascript深入理解js闭包
2010/07/03 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
Python 模拟购物车的实例讲解
2017/09/11 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
解决django中form表单设置action后无法回到原页面的问题
2020/03/13 Python
python实现经典排序算法的示例代码
2021/02/07 Python
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
硕士研究生求职自荐信范文
2014/03/11 职场文书
体育活动总结范文
2014/05/04 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
捐助感谢信
2015/01/22 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server