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找出文件中使用率最高的汉字实例详解
Jun 03 Python
python使用super()出现错误解决办法
Aug 14 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
基于Python打造账号共享浏览器功能
May 30 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
将matplotlib绘图嵌入pyqt的方法示例
Jan 08 Python
np.dot()函数的用法详解
Jan 17 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
python numpy矩阵信息说明,shape,size,dtype
May 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
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
php获得文件大小和文件创建时间的方法
2015/03/13 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
js实现将json数组显示前台table中
2017/01/10 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
python进阶教程之异常处理
2014/08/30 Python
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
Python映射拆分操作符用法实例
2015/05/19 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
使用python获取邮箱邮件的设置方法
2019/09/20 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
商超业务员岗位职责
2014/03/12 职场文书
学校文明单位申报材料
2014/05/06 职场文书
设计专业毕业生求职信
2014/06/25 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书