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中List.count()方法的使用教程
May 20 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
Nov 13 Python
win与linux系统中python requests 安装
Dec 04 Python
遗传算法之Python实现代码
Oct 10 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
Tensorflow卷积神经网络实例进阶
May 24 Python
Python中pandas模块DataFrame创建方法示例
Jun 20 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
python3爬取torrent种子链接实例
Jan 16 Python
Python3使用Selenium获取session和token方法详解
Feb 16 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 连接mysql连接被重置的解决方法
2011/02/15 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
php搜索文件程序分享
2015/10/30 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
JQuery UI皮肤定制
2009/07/27 Javascript
Exjs 入门篇
2010/04/07 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
jquery对表单操作2
2011/04/06 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
Javascript显示和隐藏ul列表的方法
2015/07/15 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
2017/04/01 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
JavaScript引用类型RegExp基本用法详解
2018/08/09 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
华为2019校招笔试题之处理字符串(python版)
2019/06/25 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
2016暑期社会实践心得体会范文
2016/01/14 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
JavaScript 反射学习技巧
2021/10/16 Javascript
Python如何使用循环结构和分支结构
2022/04/13 Python
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL