python Fehler IndexError: list index out of range?


06.07.2020, 11:26

Traceback (most recent call last):

 File "C:/Users/samyp/PycharmProjects/youtube/ocr.py", line 21, in <module>

   print ("http://www.youtube.com/watch?v=" + search_results[0])

  • IndexError: list index out of range
from PIL import Image

import urllib.request

import urllib.parse

import re

lang = 'tur+ger'

img = Image.open('1.jpg')

print(img)

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

result = pytesseract.image_to_string(img)

print(result)

query_string = urllib.parse.urlencode({"search_query" : result})

html_content = urllib.request.urlopen("http://www.youtube.com/results?" + query_string)

search_results = re.findall(r'href=\"\/watch\?v=(.{11})', html_content.read().decode())

print ("http://www.youtube.com/watch?v=" + search_results[0])

06.07.2020, 11:51

mir ist schon bewusst das "Er nichts findet"

ich finde die lösung nicht um dass problem zu lösen.

4 Antworten

List Index out of range bedeutet einfach dass du in irgendeiner Liste ein Element aufrufen willst mit einem Index der entweder negativ oder zu groß ist und daher eigentlich nicht Teil der Liste ist.

Würde mal spontan auf search_results[0] tippen.

Sieht auch nicht so aus, als ob du das als Liste initialisierst davor sondern als was anderes.

Von daher hat das anscheinend keine Elemente, womit der Index 0 out of range ist.

Woher ich das weiß:Studium / Ausbildung

Ich sehe auf die schnelle nur einen Listenzugriff - bei

print ("http://www.youtube.com/watch?v=" + search_results[0])

Wenn es dort Out of Range ist, wird es keinen Eintrag in search_results geben.

Sonst wirst du doch auch angezeigt bekommen, wo der Fehler auftritt

ich habe mich mal ein wenig mit python beschäftigt aber bin mehr so der java user allerdings frage ich mich ob ind dieser zeile

"search_results = re.findall(r'href=\"\/watch\?v=(.{11})',html_content.read().decode())"

hinter dem "re.findall(" das "r" hin muss

Woher ich das weiß:Hobby
SMDPET 
Fragesteller
 06.07.2020, 11:42

ja muss es leider.

sonst ploppen 10 weitere fehler auf.

aber danke für den versuch.

0

Kurz: Er findet nichts.