问题标签 [domcrawler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Web Scrape Symfony2 - 不可能的挑战 - 爬虫解析
(编辑:我仍然没有找到解决这个问题的方法。这个$crawler
对象看起来很荒谬,我只想将它解析为特定的<td>
文本,这有多难?我也不能serialize()
整个爬虫对象并制作整个将网页的源代码转换为字符串,否则我只能用困难的方式解析该字符串。请帮忙。我觉得我已经很好地描述了这个问题,如下所示。)
下面我使用 Symfony、Goutte 和 DomCrawler 来抓取网页。我一直试图通过其他问题来解决这个问题,但没有成功,但现在我将发布我所有的代码,以使其尽可能直截了当。
我能够获取该页面并获取我正在寻找的第一个数据。第一个是从 javascript 打印的 url,a
带有一个标签,onclick
并且是一个长字符串,所以我使用 apreg_match
来筛选并得到我需要的东西。
我需要的下一点数据是<td>
标签中的一些文本。问题是,这个网页有 10-20 个不同的<table>
标签,而且没有id=""
或class=""
标签,所以很难隔离。所以我要做的是搜索“事件标题”这个词,然后转到下一个兄弟<td>
标签并提取它的 innerHtml,这将是实际的标题。
问题是,对于第二部分,我似乎无法正确解析$crawler
对象。我不明白,我preg_match
之前在对象的一个serialize()
版本上做过$crawler
,但对于下半部分,我似乎无法正确解析。
我preg_match
只是返回一个空数组。我认为这是搜索$crawler
对象的问题,因为它由许多节点组成。我一直在尝试将其全部转换为 html 然后转换为 apreg_match
但它只是拒绝工作。我做了一些print_r
陈述,它只返回整个网页。
以下是爬虫对象中的一些 html 示例:
目标是解析整个页面/$crawler
对象并获得标题“大自然的严酷面孔”。
我知道这一定是可能的,但任何人都想提供的唯一答案是指向 domcrawler 页面的链接,此时我已经阅读了大约一千次。请帮忙。
php - 无法刮取的属性来自兄弟元素
我正在尝试使用 Symfony2、Goutte 和 DomCrawler 抓取一些数据。我有一个棘手的情况,我需要在<td>
.
工作部分:
好吧,现在是:
我正在尝试更改选择器
知道如何继续遍历,以便我可以访问<input>
它以获得它的属性 value="" 是什么?
php - Symfony 2 使用 Symfony\Component\DomCrawler\Crawler 测试 xml
我有一个返回 xml 的 url,但我在提取“链接”元素时遇到了一些问题。
我需要用它来测试它
这些是我的测试:
“链接”是保留字?
php - 如何使用 Goutte Crawler 提取数据?
这段代码返回了内容的href,现在我想从这个href中提取内容并将其发送到我的视图。命名我需要提取的 div:
symfony - Guzzle 响应不能与 Domcrawler() 一起使用
我正在尝试从网站上抓取一些内容。我最终发现它需要 cookie,所以我用 guzzle cookie 插件解决了这个问题。这很奇怪,因为我无法通过 var_dump 获取内容,但如果我执行“echo”,它会显示页面,这让我觉得有一些动态数据调用,它获取数据。我已经习惯了使用 guzzle 的 api,但不确定我应该处理这个吗?谢谢
如果我使用 domcrawler 我会得到一个错误。
代码 -
错误
php - 正确的 XPath 语法
我正在尝试访问前一个兄弟姐妹的属性,但事实证明这很困难。
所以基本上我试图抓取的网页是可怕的,并且锚标签使用糟糕的 onclick 而不是 href。愚蠢,我知道。我试图首先找到包含 onclick 的锚标记window.open('servletLinkJunkHere...')
,然后移动到上一个兄弟,这是一个img
标记,并从中提取src
属性。
这是我正在尝试使用的 xpath:
关于我如何做到这一点的任何想法?我知道这是可能的,我只是不完全精通 xpath 查询。另外,有没有什么好的资源可以学习 xpath 的所有细节?谢谢!
编辑:所以这就是我所拥有的,但它似乎只返回一个空数组。
symfony - 如何从元素中获取文本,不包括其中的一些其他元素
我domCrawler
在 symfony 框架中使用。我使用它从 html 中爬取了内容。现在我需要获取带有 ID 的元素内的文本。我可以使用下面的代码来验证文本:
element( #idOfTheElement
) 包含一些跨度、按钮等(也有一些类)。我不想要那些里面的内容。如何从元素中获取文本,不包括其中的一些其他元素。
注意:我要获取的文本没有任何其他包装,除了元素#idOfTheElement
Html 如下所示:
symfony - Symfony 2 Dom Crawler:如何在 Element 中仅获取 text()
使用 Dom Crawler 仅获取文本(无标签)。
输出:获取描述凑凑
我想输出(仅):获取描述
更新:
我找到了一个解决方案:(但它真的很糟糕)
php - 更改 Symfony2 DomCrawler 或 Goutte 的文件大小限制
我正在使用Goutte v2.0.4,它是Symfony2 DomCrawler的包装器。我有本地存储的html文件。其中一些低于 10MB;我已经成功爬取了这些文件。
其他文件大于30MB。这些没有被抓取。这可能是文件大小问题。所有文件都有类似的格式。那么有什么问题呢?如何抓取大文件?
php - 如何使用 Goutte 和 Symfony DomCrawler 从父 div 中过滤子节点值,其中 style = "..."?
我正在尝试使用 php 包Goutte从给定的 wikiquote 页面中抓取引号,该包包含 Symfony 组件:BrowserKit、CssSelector 和DomCrawler。
但是,我的结果集中有一些我不想要的引号,即来自错误分配部分的引号。
这是我到目前为止所拥有的:
我现在关注的问题是如何从错误分配的部分中过滤掉引号。此部分包含在div
具有以下style
属性的父级中:
我在想,如果我能以某种方式li
从这个特定部分获取节点值,我就可以从上面过滤掉它们$quoteArray
。我遇到的问题是我无法弄清楚如何li
从此部分中选择子节点值。
我尝试选择具有以下变化的孩子:
但这并没有返回我需要的节点值。有谁知道该怎么做或我做错了什么?