Php 编写webcrawler脚本以在远程站点上填写和发送表单

Php 编写webcrawler脚本以在远程站点上填写和发送表单,php,web-crawler,Php,Web Crawler,现在,在你拿出火炬和栏杆对付垃圾邮件发送者之前,我将在这里解释我的意图。我写了一系列脚本,从某个网站获取联系信息。这些联系人非常专注,可能需要我提供的特定服务。我计划发送给他们的信息是一次性的,写下来是非常有帮助和尊重的 说到这里,我很难找到关于如何编写PHP机器人的信息,该机器人可以进入网站、访问表单并发送表单。毫不奇怪,我所发现的一切都是关于停止“垃圾邮件”。我不担心被欺骗或类似的事情。如果他们有这样的措施,我可以跳过它们。这个问题太宽泛了,所以我也必须给你一个宽泛的答案 首先,您需要下载该

现在,在你拿出火炬和栏杆对付垃圾邮件发送者之前,我将在这里解释我的意图。我写了一系列脚本,从某个网站获取联系信息。这些联系人非常专注,可能需要我提供的特定服务。我计划发送给他们的信息是一次性的,写下来是非常有帮助和尊重的


说到这里,我很难找到关于如何编写PHP机器人的信息,该机器人可以进入网站、访问表单并发送表单。毫不奇怪,我所发现的一切都是关于停止“垃圾邮件”。我不担心被欺骗或类似的事情。如果他们有这样的措施,我可以跳过它们。

这个问题太宽泛了,所以我也必须给你一个宽泛的答案

首先,您需要下载该页面。您可以使用cURL(或者file\u get\u内容可能会失效)

然后,您需要使用HTML解析器对其进行解析。您可以使用与PHP捆绑在一起的DOMDocument,但您可能会感到窒息,因为DOMDocument对有HTML语法错误的页面(或HTML5)不是很宽容

然后需要遍历DOM并查找表单本身,提取url和方法并发出请求

然后可以使用cURL向该url发送提交请求


但是,对于动态页面(例如,angular和其他重javascripted页面),这将失败。你可能最好使用phantomjs这样的无头浏览器。

人们会带上手电筒,是的,不是因为爬虫,而是因为这个问题太广泛了!这怎么不是垃圾邮件?仅仅因为你是自我声明的“好”垃圾邮件,并不意味着你对这些人的垃圾邮件更少?“你在冷冷地打他们的电子邮件。”马丁,呃,哦,马丁刚刚从衣橱里拿出最高的白色帽子,戴在他精致的头上。马丁,也许读一下发帖指南吧。基于你的个人道德,你不会发现任何关于投票否决一个帖子的事情。嗯,除了也许你不应该这么做。对不起,我没有否决你的问题,@Brimby。我只是陈述了我的观点并要求澄清。我确实考虑过投票,但我觉得我还不知道这是公平的,这个问题并不坏,但我觉得背后的理由是值得怀疑的,值得我评论。我知道StackOverflow会因为不知道谁投了赞成票/反对票而感到沮丧,但我只是很少投反对票,而且只有在我知道有错误或缺乏努力的情况下才投反对票。关于你的信息,@Brimby我已经抓取和解析了这些网站,并找到了它们的表单。我遇到过很多AJAX表单之类的东西,所以我将接受您的建议并查看phantomjs。