为网络爬虫编写脚本,以便在远程站点上填写和发送表单


Scripting a webcrawler to fill and send forms on remote sites

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

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

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

首先你需要下载页面。您可以使用cURL(或者file_get_contents可能足够)。

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

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

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

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