当前位置: 首页 > 面试题库 >

Scrapy从href中获取href

马绪
2023-03-14
问题内容

我开始将Scrapy用于一个小型项目,但无法提取链接。每次找到该类时,我只会得到“ []”而不是URL。我是否缺少明显的东西?

sel = Selector(response)
for entry in sel.xpath("//div[@class='recipe-description']"):
    print entry.xpath('href').extract()

来自网站的示例:

<div class="recipe-description">
    <a href="http://www.url.com/">
        <h2 class="rows-2"><span>SomeText</span></h2>
    </a>
</div>

问题答案:

你的xpath查询错误

for entry in sel.xpath("//div[@class='recipe-description']"):

在这一行中,你实际上是在对没有任何Href属性的div进行迭代

为了使其正确,你应该在中选择achor元素div

for entry in sel.xpath("//div[@class='recipe-description']/a"):
    print entry.xpath('href').extract()

最好的解决方案是直接href在for循环中提取属性

for href in sel.xpath("//div[@class='recipe-description']/a/@href").extract():
    print href
a

为了简单起见,你还可以使用CSS选择器

for href in sel.css("div.recipe-description a::attr(href)").extract():
    print href


 类似资料:
  • 出于某种原因,不会显示警报,而是加载页面。有人知道这是为什么吗? 在这种情况下不使用jQuery。

  • 我正在使用1个servlet和1个jsp页面制作ajax servlet响应。它已经工作了,但我总是从我的“a href”的最后一个值中获得相同的参数,该值位于c: foreach循环中。 如您所见: 在我的javascript中: 因此,我试图将参数放入变量(ajaxparameter)中,但变量始终包含最新的“a href”参数(这是有意义的,因为c:foreach)。 但是,当我悬停在“a

  • 我有一个锚标记,它有一个本地href值,还有一个JavaScript函数,它使用href值,但将它指向一个与通常略有不同的位置。标签看起来像

  • 问题内容: 我正在尝试从“ a href”属性获取链接 我在做什么: 我正在获取具有“ dl_link 1”类的元素,但无法获取它的链接,字符串为空? 问题答案: 您需要使用实际的属性名称进行调用。更换: 与:

  • 问题内容: 我正在尝试从Google搜索结果中提取链接。检查元素告诉我,我感兴趣的部分具有“ class = r”。第一个结果如下所示: 要提取“ href”,我要做: 但是我意外地得到: 我想要的地方: 属性“ ping”似乎使它感到困惑。有任何想法吗? 问题答案: 发生了什么? 如果您打印响应内容(即),则会看到您得到的HTML完全不同。页面源和响应内容不匹配。 因为内容是动态加载的,所以 不

  • 我正在用Python做网页抓取。我需要获得所有搜索结果页面的链接。但是,我发现href值不是一个常规的html链接,而是如下所示的内容。如何获得正确的页面链接?谢谢