-2
votes

Vérifiez si la liste contient une chaîne spécifique, problème

J'essaie de sauter des articles sur la liste noire lorsque vous travaillez avec mon programme Selenium Python, mais je ne peux pas comprendre comment faire ce travail d'extraits -

    channel = driver.find_element_by_xpath('/html/body/ytd-app/div[1]/ytd-page-manager/ytd-watch-flexy/div[3]/div[1]/div/div[7]/div[3]/ytd-video-secondary-info-renderer/div/div[2]/ytd-video-owner-renderer/a').get_attribute('aria-label')

    print(channel)   
    print(blacklistchannels[3])

    if channel in blacklistchannels:
        print('Blacklisted Channel, Skipping...')
        continue
    else:
        print('There is still a problem')


6 commentaires

Ce n'est clairement pas exactement la même chose, mais nous ne pouvons voir aucune des données. Veuillez afficher les deux canal et blacklistedChannel


Mettez à jour la question avec HTML pertinent


Ils ne sont pas les mêmes - probablement les espaces ou autres. Faire un exemple de reproductible minimal pour obtenir de l'aide - ce code est trop vague.


Dans un devinez , canal est dans certains conteneurs par ex. une liste


Je regarderais ce Stackoverflow.com/Questions / 14312869 / ... , aussi, pourquoi utilisez-vous "Continuer"?


S'ils sont différents types, ils ne seront pas égaux, mais peuvent sembler identiques lorsqu'ils sont imprimés, voire des espaces de premier plan ou de fin peuvent gâcher la comparaison.


3 Réponses :


0
votes

Pourquoi pas simplement utiliser cela? XXX

Je ne sais pas pourquoi vous utilisez Continuer dans un si instruction


1 commentaires

Vérifiez l'édition que j'ai faite ...



1
votes

assez difficile à deviner la raison pour laquelle sinon () est exécuté. Peut-être que les HTML nous auraient aidés à diagnostiquer le problème.

Cependant, je soupçonne valeur extraite par get_attribute ('aria-label') contient espaces vides / espaces blancs .

solution

Vous pouvez utiliser python bande () méthode pour supprimer le vide espaces / espaces blancs comme suit: xxx


6 commentaires

Je viens de remarquer que la 2e impression (celle de la liste) a une ligne vierge sous elle. Cela m'a fait comprendre que c'était probablement A / N, j'imprimais dans le fichier texte pour faire de nouvelles lignes. Comment puis-je continuer à décaper la liste complète de / n?


Checkout la réponse mise à jour et laissez-moi savoir le statut.


BlackListChannel BlackListChannel = [x.strip ('\ n') pour X dans BlackListChannel] Mais il peut être plus facile de dépasser la nouvelle ligne lorsque les données sont placées dans la liste.


Vous pouvez utiliser imprimer (REC (blacklistChannel [3])) pour voir ce qu'il n'y a pas de formatage effectué.


@Debanjanb merci, je l'ai compris seul. Il n'y a pas d'espaces bleus dans l'étiquette Aria-label, le problème est en fait inséré par / N inséré pour les nouvelles lignes de mon fichier texte. Juste pour boucler la liste et les a dénisées dans une autre liste, fonctionne bien maintenant.


@Envy si mon répondez a pris en charge votre question s'il vous plaît accepte la réponse en cliquant sur la coche creuse à côté de ma réponse qui est juste en dessous de la votedown flèche, donc la coche tourne vert .



0
votes

juste une note latérale sur la façon d'attraper des problèmes tels que ceci: xxx

Comme vous pouvez le dire, il est facile de regarder le "\ r \ n" avec une déclaration d'impression normale.

C'est ici où REC () est utile: xxx


0 commentaires