【发布时间】:2017-06-21 15:39:33
【问题描述】:
我正在尝试从锚标记中检索所有 url。我使用了查询response.selector.xpath('//li[@class="active"]//a/@href').extract(),
提取所有网址,但我只得到几个查询。
网页结构如下:
`<ul class="data">
<li id="all" class="active">
<a class="fit" href="#1"></a>
<div class="1">
<a target="_blank" href="www.yahoo.com">
</div>
<div class="2">
<a target="_blank" href="www.google.com">
</div>
<a class="fit" xmlns:listval="com.indiatimes.cms.utilities.CMSDateUtility" xmlns:java="java" href="#2"></a>
<div class="1">
<a target="_blank" href="www.facebook.com">
</div>
<div class="2">
<a target="_blank" href="www.bing.com">
</div>
<a class="fit" xmlns:listval="com.indiatimes.cms.utilities.CMSDateUtility" xmlns:java="java" href="#3"></a>
<div class="1">
<a target="_blank" href="www.amazon.com">
</div>
<div class="2">
<a target="_blank" href="www.flipkart.com">
</div>
<a class="fit" xmlns:listval="com.indiatimes.cms.utilities.CMSDateUtility" xmlns:java="java" href="#4"></a>
<div class="1">
<a target="_blank" href="www.snapdeal.com">
</div>
<div class="2">
<a target="_blank" href="www.infibeam.com">
</div>
</li>
</ul>`
上一个查询只获取“www.yahoo.com”和“www.google.com”。 我需要做什么调整才能获得所有的 href ?
【问题讨论】:
-
我试过你的代码,我得到了所有的@href 字段。你能展示你的结果吗?
-
请禁用浏览器中的 javascript 并检查您要查找的内容是否仍在其中。
-
@VMRuiz 禁用 java 脚本后我找不到内容。难怪我没有得到那些href!我现在该怎么办? (因为它更像是抓取 js,而不是 html)
-
您需要使用浏览器渲染页面,例如Splash.