糟糕的结果在重复

2024-10-03 19:32:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用链接提取器从这个站点https://pagalworld.me/category/11598/Latest%20Bollywood%20Hindi%20Mp3%20Songs%20-%202017.html获取歌曲名称,但结果是重复的。在

import scrapy
from scrapy import Request
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
class RedditSpider(CrawlSpider):
    name='pagalworld'
    allowed_domains = ["pagalworld.me"]
    start_urls=['https://pagalworld.me/category/11598/Latest%20Bollywood%20Hindi%20Mp3%20Songs%20-%202017.html']
    rules = ( 
        Rule(
        LinkExtractor(restrict_xpaths='//div/ul'), 
        follow=True, 
        callback='parse_start_url'),
    )  
    def parse_start_url(self, response):
        songName= response.xpath('//li/b/a/text()').extract()

        for item in songName:

            yield {"songName":item,
        "URL":resposne}  

Output


Tags: fromhttpsimporturlparsehtmlrulestart
1条回答
网友
1楼 · 发布于 2024-10-03 19:32:20

你的蜘蛛看起来一切正常。但是,如果您查看歌曲页面,它提供每首歌曲的两个版本:

$ scrapy shell "https://pagalworld.me/files/12450/Babumoshai%20Bandookbaaz%20(2017)%20Movie%20Mp3%20Songs.html"
>[1]: response.xpath('//li/b/a/text()').extract()
<[1]: 
['03 Aye Saiyan - Babumoshai Bandookbaaz 190Kbps.mp3',
 '03 Aye Saiyan - Babumoshai Bandookbaaz 320Kbps.mp3',
 '01 Barfani - Male (Armaan Malik) 190Kbps.mp3',
 '01 Barfani - Male (Armaan Malik) 320Kbps.mp3',
 '02 Barfani - Female (Orunima Bhattacharya) 190Kbps.mp3',
 '02 Barfani - Female (Orunima Bhattacharya) 320Kbps.mp3']

一个版本的190kbps质量较低,而另一个版本的质量较高,为320kbps。
你可能只想保留其中一个:

^{pr2}$

编辑: 似乎也有重复的问题。请尝试禁用链接提取器上的follow=True,因为在这种情况下,您不想遵循。在

相关问题 更多 >