Найти - Пользователи
Полная версия: странный прикол в простом коде
Начало » Python для новичков » странный прикол в простом коде
1
darlock
потихоньку изучаю питон и решил написать простенький парсер (код ниже)
по задумке почти все работает, но есть одно НО с которым пока не могу справиться

ссылки проверял все живые и рабочие
<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
дело с мертвой точки стронулось, похожу баг в grab

при загрузке бьется часть тегов на странице

сам дурак называется) часть страниц битая и ссылки не завернуты в теги, заметил только поковырявшись в сайте поосновательней
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB