【发布时间】:2019-06-18 17:25:28
【问题描述】:
我想我想问是否有可能绕过 sql:hide (https://docs.microsoft.com/en-us/sql/relational-databases/sqlxml-annotated-xsd-schemas-using/hiding-elements-and-attributes-by-using-sql-hide?view=sql-server-2017),但我在下面描述了我的实际问题,以防我弄错了:
我正在尝试从具有类似于以下 DOM 的网站中抓取“foo”网址:
<html>
<body>
<tbody>
<tr>
<a href="foo1">...</a>
<a href="foo2">...</a>
</tr>
</tbody>
<table>
<tbody>
<tr>
<a href="bar1">...</a>
</tr>
<tr>
<a href="bar2">...</a>
</tr>
</tbody>
</table>
</body>
</html>
每当我尝试print(response.css('a')) 或等效的print(response.xpath('//a')) 时,我都可以看到“foo”网址,但看不到“bar”网址。此外,使用 XPath 我可以访问表格,但 print(response.xpath('//table//*')) 和 print(response.xpath('//table//a')) 都输出 []。
有没有可能 table 的元素已经被 Scrapy 隐藏了?如何解决这个问题?
提前致谢。这主要是出于兴趣,因为网址无论如何都有可预测的模式。
【问题讨论】:
-
您能否提供指向使用此功能的文件的链接? Scrapy 不关心 DOM,它关心底层的 XML/HTML 数据。重要的是,这些链接在该数据中的位置(如果它们在该数据中)。
-
我试图抓取的页面在 HTTP 身份验证之后,所以我不认为我可以在这里分享它们。检查元素工具不能向我显示实际的 HTML 数据吗?有没有更好的方法来查看 HTML 数据?
-
您能否检查身份验证后获得的 HTML,并尝试根据您获得的嵌入问题的 HTML 文件提供一个简短的 HTML 文件,该文件可用于重现问题?
标签: xpath scrapy css-selectors