蜘蛛抓取一頁中的某些特定鏈接。然後它在每個頁面中搜索youtube鏈接和名稱以將其標識爲(頁面標題)。它確實找到我需要的所有鏈接,但訂單很奇怪。Scrapy逆向爬網
蜘蛛從底部到頂部收集所有的頁面信息。我怎樣才能讓它從頂部到底部?
我的蜘蛛:http://pastebin.com/5qLKr6ky
輸出:http://pastebin.com/j4h4aRMs
開始頁:它是蜘蛛(因爲我是一個新的用戶我不能發佈超過2個鏈接)
我希望輸出的順序與起始頁面中的順序相同。
蜘蛛抓取一頁中的某些特定鏈接。然後它在每個頁面中搜索youtube鏈接和名稱以將其標識爲(頁面標題)。它確實找到我需要的所有鏈接,但訂單很奇怪。Scrapy逆向爬網
蜘蛛從底部到頂部收集所有的頁面信息。我怎樣才能讓它從頂部到底部?
我的蜘蛛:http://pastebin.com/5qLKr6ky
輸出:http://pastebin.com/j4h4aRMs
開始頁:它是蜘蛛(因爲我是一個新的用戶我不能發佈超過2個鏈接)
我希望輸出的順序與起始頁面中的順序相同。
我不知道scrapy,但我知道你可以通過調用reversed
來簡單地反轉python中的列表或其他迭代器。
噢,你的意思是你需要得到的Youtube鏈接,以便他們放置在首頁上?
鏈接是隨機順序,因爲如果你看一下頁面的源代碼的鏈接頁面的一個Scrapy發出請求並行
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"]
...
,它包含指向一個和下一個視頻。這些鏈接是這種形式:
<div class="entry clearfix">
...
<b>Next:</b> The TCP/IP Model >></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來過濾掉這些其他鏈接。
謝謝,但這並不完全是我所需要的。該清單不僅僅是顛倒過來。有很多鏈接是隨機的,我不知道爲什麼。這很難解釋,但如果你可以看看輸出它變得更清晰。 – CEFEGE