我有一个webcrawler应用程序.它成功抓取了大多数常见和简单的网站.现在我遇到了一些类型的网站,其中HTML文档是通过FORMS或javascripts动态生成的.我相信他们可以爬行,我只是不知道如何.现在,这些网站不显示实际的HTML页面.我的意思是如果我在IE或firefox中浏览该页面,HTML代码与IE或Firefox中的实际内容不匹配.这些网站包含文本框,复选框等...所以我相信他们就是所谓的"Web表单".实际上我对网络开发并不熟悉,所以如果我错了就纠正我.
我的问题是,有没有像我现在一样处于类似情况的人,并成功地解决了这些类型的"挑战"?有没有人知道有关网页抓取的某本书或文章?那些与这些先进类型的网站有关的?
谢谢.
我想要做的很简单:将数据存储在我想要稍后阅读的自定义配置文件中.
我创建something.yml
了我放在全局config
目录中的文件.它看起来像这样:
prod:
test: ok
dev:
test: ko
all:
foo: bar
john: doe
Run Code Online (Sandbox Code Playgroud)
然后我复制了config_handlers.yml并将其放在config目录中,并在文件顶部添加了以下内容:
config/something.yml:
class: sfDefineEnvironmentConfigHandler
param:
prefix: something_
Run Code Online (Sandbox Code Playgroud)
但如果我打电话,sfConfig::get("something_foo");
我会继续NULL
.
我做错了什么?我只想读取值,所以不需要创建一个自定义配置处理程序,对吧?
我已经阅读了这里的文档:http://www.symfony-project.org/book/1_2/19-Mastering-Symfony-s-Configuration-Files即使我正在运行1.4(我不认为改变了自那时候起).
编辑:当然我可以使用,sfYaml::load()
但我想以更好的方式做事.
在Google App Engine上使用Python查询数据存储,可以使用GQL或Entity.all()然后对其进行过滤.所以例如这些是等价的
gql = "SELECT * FROM User WHERE age >= 18"
db.GqlQuery(gql)
Run Code Online (Sandbox Code Playgroud)
和
query = User.all()
query.filter("age >=", 18)
Run Code Online (Sandbox Code Playgroud)
现在,也可以按键名查询事物.我知道在GQL中你这样做
gql = "SELECT * FROM User WHERE __key__ >= Key('User', 'abc')"
db.GqlQuery(gql)
Run Code Online (Sandbox Code Playgroud)
但是你现在如何使用过滤器来做同样的事情呢?
query = User.all()
query.filter("__key__ >=", ?????)
Run Code Online (Sandbox Code Playgroud) 在从主干到分支的subversion合并之后,我遇到了冲突,因为文件已在主干中删除并在分支中修改.我想保留trunk选择,但是从分支目录中使用"svn resolve --accept theirs-full"告诉我
svn:警告:树冲突只能解析为"工作"状态; '/ path/to/file'未解决
如何在分支中正确删除文件?
我是Git,GitHub和Heroku世界的新手.到目前为止,我很享受这个范例,但是来自SVN的背景,在Git世界中对我来说似乎有些复杂.我正面临一个问题,我正在寻找解决方案.
场景:
1.我在GitHub上设置了一个新的私人项目.我分叉私有项目,现在我的分支中有以下结构:
/project
/apps
/my-apps
/my-app-1
....
/my-app-2
....
/your-apps
/your-app-1
....
/your-app-2
....
/plugins
....
Run Code Online (Sandbox Code Playgroud)
我可以在我想要的任何文件夹中从我的机器上的GitHub上的Fork中提交代码.稍后,这些将由项目的管理员拉入主存储库.
2.对于apps文件夹中的每个应用程序,我在Heroku上设置了一个应用程序,它本身就是一个Git Repo,当我完成本地计算机上的用户故事时,我会推送我的更改.简而言之,apps文件夹中的每个应用程序都是在Heroku上托管的Rails应用程序.
问题:
我想要的是,当我将我的更改推送到Heroku时,它们也可以在GitHub上提交到我的项目分支中,因此,它也始终具有最新的代码.
我看到的问题是Heroku上的代码是Git Repo,而我在GitHub上的文件夹是Repo的一部分.
到目前为止,我所研究的是Git World中有一些称为Submodule的东西可以拯救,但是,我还没有找到一些新手指令.
社区中的某个人是否可以友好地分享想法并帮助我找出这个问题的解决方案?
来自对公告博客帖子的评论:
关于JSON:JSON的结构类似于协议缓冲区,但协议缓冲区二进制格式仍然更小,编码速度更快.尽管如此,JSON为协议缓冲区提供了一个很好的文本编码 - 编写一个编码器/解码器,使用protobuf反射将任意协议消息转换为JSON和从JSON转换,这是微不足道的.这是与AJAX应用程序通信的好方法,因为用户在访问您的页面时下载完整的protobuf解码器可能太多了.
制作一个映射可能是微不足道的,但两者之间是否有一个"明显"的映射,任何两个独立的开发团队自然会解决这个问题?如果两个产品支持PB数据并且可以互操作,因为它们共享相同的.proto规范,我想知道如果他们独立引入相同规范的JSON反射,他们是否仍然能够互操作.可能会有一些任意的决定,例如,枚举值是由字符串表示的(人类可读的典型JSON)还是整数值?
那么是否存在已建立的映射,以及用于从.proto规范生成JSON编码器/解码器的任何开源实现?
我的问题是,每次我使用如下URL的URL进行操作时:https://nttt.dttt.com:8443/swn/anttt/Med/strunk我得到
服务器发送意外返回值(403 Forbidden)以响应OPTIONS".
我提供的用户和密码是正确的,所以没有问题.
我不知道问题出在哪里,我不知道它是服务器(对女巫我没有任何控制)或我的Tortoise客户端.
我有一个需要改进的验证课程.如果我需要一些自定义验证,我需要指定一个自定义函数.它有点像这样:
在某种程度上我可以改变它来做这样的事情吗?
$validation = new validation;
// Insert rules here.
$validation->function() = $this->function();
Run Code Online (Sandbox Code Playgroud)
通过这样做,我可以摆脱创建不需要的类实例的步骤.
我已经阅读过使用正则表达式(在.NET中)匹配字符串内的单词,我可以\b
在正则表达式中使用单词boundary specifier().但是,这些调用都不会导致任何匹配
Regex.Match("INSERT INTO TEST(Col1,Col2) VALUES(@p1,@p2)", @"\b@p1\b");
Regex.Match("INSERT INTO TEST(Col1,Col2) VALUES(@p1,@p2)", @"\bINSERT\b");
Run Code Online (Sandbox Code Playgroud)
有什么我做错了吗?
编辑:第二个已经工作;)