Форум сайта python.su
0
потихоньку изучаю питон и решил написать простенький парсер (код ниже)
по задумке почти все работает, но есть одно НО с которым пока не могу справиться
ссылки проверял все живые и рабочие
<li><a href=“VOLVO%20850R%202.3T%200261204134%201037358586%20Auto.rar”> VOLVO 850R 2.3T 0261204134 1037358586 Auto.rar</a></li>
<li><a href=“VOLVO%20XC90%20D5_0281011441_120KW.ZIP”> VOLVO XC90 D5_0281011441_120KW.ZIP</a></li>
вот первую ссылку мой код пропускает, вторую берет
визуально в ссылках только одно отличие - расширение, скрипт берет только с zip игнорируя rar и прочие
голову сломал
дебажить пробовал, не могу понять причину по которой часть href в которой расширения отличные от .zip пропускаются…
гугла мучил
from grab import Grab import os import urllib import logging url = '' dir = [] links = [] logging.basicConfig(level=logging.DEBUG) g = Grab() g.go(url) if not os.path.exists('links.txt'): for j in g.doc.select('//a'): if 'directory' in j.attr('href'): dir.append(j.attr('href')) lout = open('links.txt', 'w') for k in dir: name = k[k.find('directory=')+10:] try: os.mkdir(name) except WindowsError: g.go(url+k) for j in g.doc.select('//a'): tl = j.attr('href') lout.write(tl+'\n') lout.close() else: for line in open('links.txt','r'): if 'filename=' in line: fname = line[line.find('filename=')+9:line.find('&dir')] current_dir = line[line.find('directory=')+10:] print (url+'files/'+current_dir+'/'+fname)
Отредактировано darlock (Дек. 21, 2015 17:50:10)
Офлайн
0
дело с мертвой точки стронулось, похожу баг в grab
при загрузке бьется часть тегов на странице
сам дурак называется) часть страниц битая и ссылки не завернуты в теги, заметил только поковырявшись в сайте поосновательней
Отредактировано darlock (Дек. 22, 2015 11:34:54)
Офлайн