PHP:我想创建一个从论坛线程中提取图像的页面,可行吗?代码点火器?
你有一个论坛(vbulletin),它有一堆图片——如果有一个页面访问一个线程,逐步浏览每个页面并将图片转发给用户(通过ajax或其他方式),那该有多容易。我不是在问过滤(这当然很容易) 一天内可以完成吗?:)PHP:我想创建一个从论坛线程中提取图像的页面,可行吗?代码点火器?,php,Php,你有一个论坛(vbulletin),它有一堆图片——如果有一个页面访问一个线程,逐步浏览每个页面并将图片转发给用户(通过ajax或其他方式),那该有多容易。我不是在问过滤(这当然很容易) 一天内可以完成吗?:) 我有一个网站也使用codeigniter——使用它会更简单吗?假设这是在服务器上执行的,curl+regexp是您的朋友。。是的。。一天之内可以做到 还有一些方法可能会使该脚本更干净,这取决于您的刮片脚本运行的位置 如果它与论坛软件运行在同一台服务器上,您可能希望直接访问数据库并检查那里
我有一个网站也使用codeigniter——使用它会更简单吗?假设这是在服务器上执行的,curl+regexp是您的朋友。。是的。。一天之内可以做到
还有一些方法可能会使该脚本更干净,这取决于您的刮片脚本运行的位置 如果它与论坛软件运行在同一台服务器上,您可能希望直接访问数据库并检查那里的图像链接。我不熟悉vbulletin,但它可能提供了一个允许高级数据库访问的插件api。这将简化查询线程中的所有帖子 但是,如果您的脚本运行在另一台机器上(或者换句话说,与论坛软件无关),则它必须充当http客户端。它可以获取一个线程的所有页面(通过搜索页面中的下一个链接自动获取,或者通过将所有页面指定为参数手动获取),并在html源代码中搜索图像标记(
)。
然后可以使用正则表达式来提取图像URL。最后,脚本可以使用这些图像URL构建另一个显示所有这些图像的页面,也可以下载它们并创建一个包
在第二种情况下,脚本实际上起到了“蜘蛛”的作用,因此它应该尊重robots.txt或meta标记等内容。执行此操作时,请确保限制您的抓取速率。您不希望每秒请求许多页面,从而使论坛服务器过载。最简单的方法可能是在每次抓取之间睡眠X秒。是的,一天内可以完成 既然你已经有了一个有效的CI设置,我会使用它 我将采用以下方法: 1) 在CI中制作一个能够:
- 登录到vbulletin(图像通常作为附件添加,需要先登录才能下载)。使用类似于李>
- 使用preg_match()收集“最后一个按钮”的url,使用parse_url()/和parse_str()解析url,并生成从第1页到最后一页的链接
- 从所有生成的链接收集html。还在用史努比
- 使用preg_match_all()查找html中的所有图像
- 下载所有图片。还在用史努比
- 将下载的映像从tmp目录移动到另一个目录中,如果存在相同的imagename allready,则重命名为imagename_01、imagename_02等
- 将图像名称和精确字节大小保存在db表中。这样可以避免多次下载同一图像
4) 编写代码,使用db表为最终用户输出漂亮的html以获取图像。正确-我将使用图像标签解析它,当然跳过化身等。我拥有所有者的权限,但我将作为第三方行事,无需访问。非常感谢。