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 相关文章推荐
Django在Win7下的安装及创建项目hello word简明教程
Jul 14 Python
python简单实现计算过期时间的方法
Jun 09 Python
Python本地与全局命名空间用法实例
Jun 16 Python
python利用datetime模块计算时间差
Aug 04 Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
Python字符串的常见操作实例小结
Apr 08 Python
Django密码系统实现过程详解
Jul 19 Python
Python处理session的方法整理
Aug 29 Python
Python命令行click参数用法解析
Dec 19 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 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 sybase_fetch_array使用方法
2014/04/15 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
Google韩国首页图标动画效果
2007/08/26 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
jQuery 中的 DOM 操作
2016/04/26 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
vue观察模式浅析
2018/09/25 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
2019/04/10 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
python中reload(module)的用法示例详解
2017/09/15 Python
Python实现读取机器硬件信息的方法示例
2018/06/09 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
Python中关于浮点数的冷知识
2019/09/22 Python
python 实现视频 图像帧提取
2019/12/10 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
一款利用html5和css3实现的3D滚动特效的教程
2015/01/04 HTML / CSS
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
装修致歉信
2014/01/15 职场文书
课内比教学心得体会
2014/09/09 职场文书
代收款委托书范本
2014/10/01 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
党员理论学习心得体会
2016/01/21 职场文书
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS