코드가 작동하지만 좀 더 적절하게 작성할 수있는 방법에 대한 팁을 찾고 있습니다. 특히 if를 사용하는 것이 좋습니다. 당신이 말할 수 있듯이 필자는 본질적으로 프로그래머가 아닙니다 ... 단지 파이썬에서 약간의 작업을하는 시스템 관리자입니다. 제공 할 수있는 조언을 주셔서 감사합니다.Python - BeautifulSoup 함수를 다시 작성하는 방법에 대한 더 자세한 내용은
def findallWileyLinks():
pagebase = 'http://onlinelibrary.wiley.com'
journallist = 'http://onlinelibrary.wiley.com/browse/publications?type=journal&&start=0&resultsPerPage=3000'
inputList = getinputList()
if inputList:
alljournallistsoup = BeautifulSoup(getwebpage(journallist))
if alljournallistsoup:
alljournallisttags = alljournallistsoup.find('ol', attrs={'id' : 'publications'})
for eissn in inputList:
journalatag = alljournallisttags.find('a', attrs={'href' : re.compile(eissn.rstrip() + '$')})
if journalatag:
journalsoup = BeautifulSoup(getwebpage(pagebase + journalatag.get('href') + '/issues'))
if journalsoup:
allvolumetags = journalsoup.find('ol', attrs={'class' : 'issueVolumes'})
volumeatags = allvolumetags.findAll('a')
for volumeatag in volumeatags:
volumesoup = BeautifulSoup(getwebpage(pagebase + volumeatag.get('href')))
if volumesoup:
allissuetags = volumesoup.find('li', attrs={'id' : volumeatag.get('id')[:-5]})
issueatags = allissuetags.findAll('a')[1:]
for issueatag in issueatags:
currentlinksavailiable.append(pagebase + issueatag.get('href') + '\n')
else:
appendlog('eISSN: ' + eissn.rstrip() + ' not found on alljournallist page.')
try:
with open(inputDirectory + selectedPublisher + '_currentlinksavailiable.txt', 'w') as f:
f.writelines(currentlinksavailiable)
except IOError as e:
appendlog('findallLinks() Operation failed probably when creating the new link text file with error: %s' % e.strerror)
의견을 보내 주셔서 감사합니다. if 앞에있는 if는 inputList = [] 및 currentlinksavailiable = []와 함께 제거되었습니다. 이것은 더 큰 스크립트의 일부입니다. 이것은 특정 게시자에 대한 링크를 가져 오기 위해 작성되었습니다. 일단 이것이 세련되면, 다른 출판사에 더 비슷한 기능을 쓰는 템플릿으로 사용할 것입니다. – Brad