首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抓取反向抓取

抓取反向抓取
EN

Stack Overflow用户
提问于 2012-12-31 03:52:08
回答 3查看 626关注 0票数 0

蜘蛛从一个页面抓取一些特定的链接。然后,它在每个页面中搜索一个youtube链接和一个名称,以将其标识为(页面标题)。它确实找到了我需要的所有链接,但是顺序很奇怪。

爬行器从下到上收集所有页面信息。我怎样才能让它从上到下?

输出:http://pastebin.com/j4h4aRMs

起始页:它在爬行器中(我不能发布超过2个链接,因为我是新用户)

我希望输出的顺序与起始页中的顺序相同。

EN

回答 3

Stack Overflow用户

发布于 2012-12-31 03:56:26

我不知道scrapy,但我知道在python中可以非常简单地通过调用reversed来反转列表或其他可迭代对象。

票数 0
EN

Stack Overflow用户

发布于 2012-12-31 05:39:49

哦,你的意思是,你需要得到的Youtube链接的顺序,他们放置在开始页?

链接的顺序是随机的,因为Scrapy并行地发出请求

代码语言:javascript
复制
class ProfessormesserSpider(BaseSpider):

    allowed_domains = ['www.professormesser.com']
    start_urls = ['http://www.professormesser.com/n10-005/free-network-plus/']

    def parse(self, response):
        # extract urls from start page and REMEMBER THEIR ORDER(!!!)
        hxs = HtmlXPathSelector(response)
        for i, link in enumerate(hxs.xpath("//td[@valign='center']/div/descendant::a/@href")):
            # "i" is the link's order
            yield yield Request(url=link, callback=self.parse_item, meta={'i': i})

    def parse_item(self, request):
        order = response.request.meta["i"]
        ...
票数 0
EN

Stack Overflow用户

发布于 2012-12-31 06:14:05

如果您查看其中一个链接页面的页面源,就会发现其中包含指向前一个和下一个视频的链接。这些链接的形式如下:

代码语言:javascript
复制
<div class="entry clearfix">
...
<b>Next:</b> The TCP/IP Model  &gt;&gt;</a><br />
<center><iframe width="640" height="360" src="http://www.youtube.com/embed/lSK1d8fZyEw?rel=0" frameborder="0" allowfullscreen></iframe></center></p>
</div>

因此,您将拾取重复的条目(尽管具有不同的链接)。您可能需要开发一个更显式的xpath来过滤掉这些其他链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14094093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档