Php 使用curl刮字典

Php 使用curl刮字典,php,shell,dictionary,curl,web-scraping,Php,Shell,Dictionary,Curl,Web Scraping,出于学术原因,我需要搜集一本朝鲜词典(我已经了解了与版权相关的问题),这“实际上”应该很简单:该网站由PHP脚本返回,该脚本仅在URL中使用升序数字作为每个词典条目: uriminzokkiri.com/uri_foreign/dic/index.php?page=1 最后一个入口位于: uriminzokkiri.com/uri_foreign/dic/index.php?page=313372 因此,基本上,我认为最简单的方法是编写一个简单的shell脚本,其中使用循环构造增加条目的数量,并

出于学术原因,我需要搜集一本朝鲜词典(我已经了解了与版权相关的问题),这“实际上”应该很简单:该网站由PHP脚本返回,该脚本仅在URL中使用升序数字作为每个词典条目:

uriminzokkiri.com/uri_foreign/dic/index.php?page=1

最后一个入口位于:

uriminzokkiri.com/uri_foreign/dic/index.php?page=313372

因此,基本上,我认为最简单的方法是编写一个简单的shell脚本,其中使用循环构造增加条目的数量,并检查站点是否成功下载,因为连接不好,所以它会重复尝试下载站点,直到成功(也很简单)

但后来我试着下载一个包含测试条目的网站,但失败了。该站点使用会话cookie,因此我首先使用“-c”参数将相应的cookie保存在一个文件中,然后使用“-v”(verbose)和“-b”(从文件获取cookie)参数调用curl,从而产生以下输出:

以下是Firebug显示的请求和响应头:

我还尝试使用“-H”参数传递所有这些请求头,但是这也不起作用

有人开始编写一个基于Python的scraper来删除这本词典,但是如果这可以通过一个简单的bash脚本来实现,那么在我看来,这有点像是过火了

有人知道我迄今为止尝试的方法为什么不起作用,以及如何实现这一点吗


事先非常感谢并致以亲切的问候

您可以放置更多的Http头,如:

  • 来源:巫婆是你们废弃的原始站点的域名
  • 用户代理:witch是您可以从internet获得的客户端配置


否则,您可以从浏览器代码检查中获取bash curl脚本,然后将其转换为php代码。所有操作都是自动的,并且在线存在。

我使用了您在pastebin中共享的命令(顺便说一句,在问题中也应该共享该命令),它在获取页面时工作得很好。现在,您需要做的就是使用某种HTML解析器或正则表达式来刮取HTML,以找到您需要的条目(Python听起来不再像是一个滥杀,是吗?)对不起,出于某种奇怪的原因,我错误地缩短了URL:“必须添加&ID=1”(对于第一个条目),正如Firebug标题中所示,因此,如果我在浏览器中输入此地址,将返回包含该条目的站点,但为了将其删除,我需要获取Firebug的内容:“get”或“set”属于[LenientThis]被忽略的属性,因为“this”对象不正确。如何获取“dic_desc_center”/它指向哪里?谢谢你的提示。我已经尝试过传递Firefox传递的每个HTTP头,但没有成功(来源、用户代理、缓存、cookie等)。PHP和DOM/DIV元素当然不是我知识的一部分(我专门从事Linux管理和C/C++编程)-站点必须从某个地方调用这个DIV对象的内容,所以没有办法跟踪它吗?