【问题标题】:Scripting a webcrawler to fill and send forms on remote sites编写网络爬虫脚本以在远程站点上填写和发送表单
【发布时间】:2015-02-10 04:33:26
【问题描述】:

现在,在您摆脱垃圾邮件发送者的火炬和铁路之前,我将在此解释我的意图。我编写了一系列脚本,用于抓取某个网站以获取联系信息。这些联系人非常专注,并且可能处于需要我提供的特定服务的位置。我计划发送给他们的信息是一次性的,并且写得非常有帮助和尊重。

话虽如此,我很难找到有关如何编写可以进入网站、访问表单并发送它的 PHP 机器人的信息。不出所料,我发现的一切都是关于停止“垃圾邮件机器人”。我不担心重复验证或类似的事情。如果他们有这样的措施,我可以跳过它们。

【问题讨论】:

  • 人们会带火炬,是的,不是因为爬虫,而是因为这个问题很广泛!
  • 这不是垃圾邮件吗?仅仅因为您自称“好”垃圾邮件,并不意味着您对这些人的垃圾邮件较少?你打电话给他们的电子邮件很冷。
  • @Martin 哦,哦,马丁刚从衣柜里拿出最高的白帽子,戴在他精致的头上。也许阅读发布指南,马丁。您不会发现任何关于根据您的个人道德投票否决帖子的信息。好吧,除了你不应该这样做。
  • 对不起,我没有否决你的问题,@Brimby。我只是陈述了我的观点并要求澄清。我确实 考虑投反对票,但我觉得我知道的不够多,无法确定这是公平的,而且问题还不错,但我觉得背后的原因是有问题,值得我评论。我知道 StackOverflow 令人沮丧的是不知道谁投赞成票/反对票,但我很少投反对票,而且只有在我知道有错误或缺乏努力时才会投反对票。
  • 供您参考,@Brimby i59.tinypic.com/nbrz81.jpg

标签: php web-crawler


【解决方案1】:

这个问题太笼统了,所以我也得给你一个笼统的答案……

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

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

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

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

但是,对于动态页面(例如,有角度的页面和其他繁重的 javascript 页面),这将失败。您可能最好使用像 phantomjs 这样的无头浏览器。

【讨论】:

  • 我已经抓取并解析了这些网站并找到了它们的表单。而且我遇到过很多AJAX表单之类的,所以我会听取你的建议,看看phantomjs。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-19
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多