У меня есть несколько сообщений за последние несколько дней, поэтому спасибо за помощь до сих пор, все это ценно для помощи новичку.TypeError: объект «NoneType» не является итерируемым, Python
Heads Up, я знаю, что код, приведенный ниже, выглядит очень простым, и, возможно, есть потерянный более простой и элегантный способ добиться того, что я пытаюсь, но на данный момент это основы, которые я могу узнать и на самом деле понять до степени ха-ха.
Просто интересно, если кто-то может на самом деле сказать мне, что ошибка вызвана, на выходе программы, это, кажется, хорошо работать иногда и не с этой ошибкой, может быть, 2 из 3.
это еще работа в процессе реализации основной целью является создание программы, в которой я могу автоматизировать что-то, что я делаю вручную в качестве учебной среды.
Спасибо за понимание.
Программа выходного
Beginning Mining
Opener Created
Opener Headers Added
Url Assigned
HTTP Error 503: Service Temporarily Unavailable
1
Opener Created
Opener Headers Added
Url Assigned
Page Open and Read
90378
soup assigned to rawdata
filtered for torType Class
reassigned to soup to tordata
Links Filtered
Printing Recent Torrents from Filter WebData function
['/the-big-bang-theory-s07e08-hdtv-x264-lol-ettv-t8180359.html', '/the-walking-dead-s04e05-hdtv-x264-2hd-ettv-t8158163.html', '/the-vampire-diaries-s05e07-proper-hdtv-x264-2hd-ettv-t8180537.html', '/the-big-bang-theory-7x7-hdtv-lol-t8141134.html', '/how-i-met-your-mother-s09e09-hdtv-x264-2hd-eztv-t8164029.html', '/sons-of-anarchy-s06e10-hdtv-x264-asap-ettv-t8170162.html', '/american-horror-story-s03e06-hdtv-x264-killers-ettv-t8175485.html', '/sleepy-hollow-s01e07-hdtv-x264-lol-eztv-t8164318.html', '/elementary-2x8-hdtv-lol-t8180367.html', '/the-originals-s01e07-hdtv-x264-lol-ettv-t8169688.html', '/the-blacklist-s01e07-hdtv-x264-lol-eztv-t8124923.html', '/modern-family-s05e07-hdtv-x264-2hd-eztv-t8175344.html', '/arrow-s02e06-proper-hdtv-x264-2hd-eztv-t8179975.html', '/white-collar-s05e05-hdtv-x264-2hd-eztv-t8180828.html', '/homeland-s03e07-720p-hdtv-x264-killers-eztv-t8158378.html', '/greys-anatomy-s10e09-hdtv-x264-lol-ettv-t8180608.html', '/how-i-met-your-mother-s09e08-hdtv-x264-2hd-eztv-t8124354.html', '/arrow-s02e05-hdtv-x264-lol-ettv-t8135416.html', '/boardwalk-empire-s04e10-hdtv-x264-2hd-eztv-t8158693.html', '/the-simpsons-s25e04-hdtv-x264-lol-eztv-t8157997.html', '/modern-family-s05e06-hdtv-x264-asap-eztv-t8061643.html', '/new-girl-s03e07-hdtv-x264-lol-eztv-t8130237.html', '/the-tomorrow-people-us-s01e06-hdtv-x264-lol-eztv-t8174964.html', '/the-walking-dead-s04e04-hdtv-x264-2hd-ettv-t8118639.html', '/supernatural-s09e06-hdtv-x264-lol-ettv-t8169899.html']
Printing newdata which should be Recent Torrents from Filter WebData function
['/the-big-bang-theory-s07e08-hdtv-x264-lol-ettv-t8180359.html', '/the-walking-dead-s04e05-hdtv-x264-2hd-ettv-t8158163.html', '/the-vampire-diaries-s05e07-proper-hdtv-x264-2hd-ettv-t8180537.html', '/the-big-bang-theory-7x7-hdtv-lol-t8141134.html', '/how-i-met-your-mother-s09e09-hdtv-x264-2hd-eztv-t8164029.html', '/sons-of-anarchy-s06e10-hdtv-x264-asap-ettv-t8170162.html', '/american-horror-story-s03e06-hdtv-x264-killers-ettv-t8175485.html', '/sleepy-hollow-s01e07-hdtv-x264-lol-eztv-t8164318.html', '/elementary-2x8-hdtv-lol-t8180367.html', '/the-originals-s01e07-hdtv-x264-lol-ettv-t8169688.html', '/the-blacklist-s01e07-hdtv-x264-lol-eztv-t8124923.html', '/modern-family-s05e07-hdtv-x264-2hd-eztv-t8175344.html', '/arrow-s02e06-proper-hdtv-x264-2hd-eztv-t8179975.html', '/white-collar-s05e05-hdtv-x264-2hd-eztv-t8180828.html', '/homeland-s03e07-720p-hdtv-x264-killers-eztv-t8158378.html', '/greys-anatomy-s10e09-hdtv-x264-lol-ettv-t8180608.html', '/how-i-met-your-mother-s09e08-hdtv-x264-2hd-eztv-t8124354.html', '/arrow-s02e05-hdtv-x264-lol-ettv-t8135416.html', '/boardwalk-empire-s04e10-hdtv-x264-2hd-eztv-t8158693.html', '/the-simpsons-s25e04-hdtv-x264-lol-eztv-t8157997.html', '/modern-family-s05e06-hdtv-x264-asap-eztv-t8061643.html', '/new-girl-s03e07-hdtv-x264-lol-eztv-t8130237.html', '/the-tomorrow-people-us-s01e06-hdtv-x264-lol-eztv-t8174964.html', '/the-walking-dead-s04e04-hdtv-x264-2hd-ettv-t8118639.html', '/supernatural-s09e06-hdtv-x264-lol-ettv-t8169899.html']
Mining Ended
Relative Search
Diagnostic line ['*arrow*', '*grimm*', '*elementary*', '*American*Horror*', '*once*Upon*aTime*', '*Agents*of*shield*']
Diagnostic line None
Searching for My Torrents
Reset Vars
Diagnostic line *arrow*
Traceback (most recent call last):
File "C:\Python33\scratchpad.py", line 121, in <module>
SearchTorrents(MyPrograms,RecentTorrentLinks)
File "C:\Python33\scratchpad.py", line 103, in SearchTorrents
matchobj = fnmatch.filter(TorrentList,item)
File "C:\Python33\lib\fnmatch.py", line 59, in filter
for name in names:
TypeError: 'NoneType' object is not iterable
Код программы
WebUrl = 'http://kickasstorrents.come.in/tv/'
MyPrograms = ['*arrow*','*grimm*','*elementary*','*American*Horror*','*once*Upon*aTime*','*Agents*of*shield*']
loop = 0
RecentTorrentLinks = []
def RetrieveWebData(MyUrl):
try:
#create Url Opener
opener = urllib.request.build_opener()
#Diagnostic Line
print("Opener Created")
#Simulation as a browser
opener.addheaders =[('User-agent','Mozilla/5.0')]
#Diagnostic Line
print("Opener Headers Added")
url = (MyUrl)
#Diagnostic Line
print("Url Assigned")
#Open URL and read Data
page = opener.open(url).read()
#Diagnostic Line
print("Page Open and Read")
#Diagnostic Line
print(len(page))
newdata = FilterWebData(page)
# Diagnotic Line
print ("Printing newdata which should be Recent Torrents from Filter WebData function")
print (newdata)
return newdata
except urllib.error.URLError as e:
print(e)
if e.code == 503:
print (loop ++ 1)
RetrieveWebData(WebUrl)
else:
print('Error Occured :-' + e + ' Code :- '+ e.code)
sys.exit()
def FilterWebData(RawData):
RecentTors = []
try:
soup = BeautifulSoup(RawData)
#Diagnostic Line
print (" soup assigned to rawdata")
TorData = soup.find_all("a", {"class" : "torType"})
#Diagnostic Line
print (" filtered for torType Class")
soup = BeautifulSoup(str(TorData))
#Diagnostic Line
print (" reassigned to soup to tordata")
for link in soup.find_all('a'):
RecentTors.append(link.get('href'))
#Diagnostic Line
print ("Links Filtered")
# Diagnotic Line
print ("Printing Recent Torrents from Filter WebData function")
print (RecentTors)
return RecentTors
#Simpler Version of my code by StackOverlfow User
#TorData = soup.find_all("a", {"class" : "torType", 'href': True})
#return [link['href'] for link in TorData]
except OSError as e:
print("An error occurred during filtering",e)
def SearchTorrents(SearchCrit,TorrentList):
try:
#Diagnostic Line
print ('Diagnostic line ' + str(SearchCrit))
print ('Diagnostic line ' + str(TorrentList))
#Diagnostic Line
print ("Searching for My Torrents")
item = " "
matchobj = " "
#Diagnostic Line
print ("Reset Vars")
for item in SearchCrit:
#Diagnostic Line
print ('Diagnostic line ' + item)
#print ('Diagnostic line ' + str(TorrentList))
matchobj = fnmatch.filter(TorrentList,item)
print (matchobj)
except OSError as e:
print("An error occurred during searching",e)
#Diagnostic Line
print ("Beginning Mining")
RecentTorrentLinks = RetrieveWebData(WebUrl)
#Diagnostic Line
print ("Mining Ended")
#Diagnostic Line
print ("Relative Search")
#Diagnostic Line
#print ("Diagnotic Line TorrentLinks ")
#print (RecentTorrentLinks)
SearchTorrents(MyPrograms,RecentTorrentLinks)
#Diagnostic Line
print ("Relative Ended")
Ok благодаря ответам, я implementated проверку на наличие ошибок, и я заменил возвращение в функции retreieveweb с глобальной переменной, список был огибают от переменной до переменной до много, как только я это понял, может быть, некорректный ярлык, кажется, все работает в первый раз на данный момент. спасибо за понимание и помощь :) – DeadZero