Ответы пользователя по тегу Python
  • Ошибка в коде парсера, в чем ошибка?

    @Kamikaze
    item.find('a', class_ = 'marginright5 link linkWithHash detailsLink linkWithHashPromoted').get_text(strip = True)

    Недавно видел замечательное название подобной конструкции, "крушение поезда". Первый вагон свалился - весь состав под откос.
    Суть в чем, метод find, если не находит то, что описано в условиях, вернет None, от чего метод get_text упадет, что у вас и случилось. По-хорошему, надо бы проверять, вернул ли что-то метод find и только если вернул, получать его текст.
    Ответ написан
    Комментировать
  • Как на питоне реализовать такую функцию?

    @Kamikaze
    Если хочется просто сделать костыль, не вдаваясь в питон, гуглим то, что нужно, в данном случае python get web page and parse, попадаем на какой-нибудь https://realpython.com/beautiful-soup-web-scraper-... за минуту по диагонали читаем, копипастим примеры, слегка поправляем под нужды и хоп, у нас за 2-3 минуты вот такая поделка, получающая все заголовки:
    import requests
    from bs4 import BeautifulSoup
    
    URL = 'https://blog.torproject.org/'
    page = requests.get(URL)
    
    soup = BeautifulSoup(page.content, 'html.parser')
    
    results = soup.find_all('h2', class_='title')
    for result in results:
      print("%s" % result.text)
    Ответ написан
    Комментировать
  • Как правильно использовать юникод в python 2.7?

    @Kamikaze Автор вопроса
    Если кому интересно, в 2.7 решил примерно вот таким вот костылем:
    ...
    def _repl_unicode(matchobj):
    	line3 = re.sub('\\\\uffffff','',matchobj.group(0))
    	line4 = binascii.unhexlify(line3)
    	return line4
    
    while True:
    	line2_obj = re.search('((\\\\uffffff[0-9a-f]{2}){2})',line)
    	if line2_obj is not None:
    		line2 = line2_obj.group(0)
    		line3 = re.sub('\\\\uffffff','',line2)
    		line = re.sub('((\\\\uffffff[0-9a-f]{2}){2})',_repl_unicode,line)
    	else:
    		break
    ...

    И вуаля, на выходе уже вполне себе нормальная кириллица.
    Ответ написан