Форум сайта python.su
0
Доброго времени суток.
Имеется простенький парсер, который выгружает необходимую мне информацию с сайтов.
site = urllib.request.urlopen('http://steamcommunity.com/sharedfiles/filedetails/?id=308490450') html = site.read().decode('utf8') img = re.findall (r'<div class="highlight_strip_item highlight_strip_screenshot" id=".*" ><img src="(.*?)"></div>', str(html)) print(str("".join(img)))
Офлайн
9
Используйте lxml или BeautifulSoup, зачем вам этот мазохизм?
from bs4 import BeautifulSoup from urllib.request import urlopen site = urlopen('http://steamcommunity.com/sharedfiles/filedetails/?id=308490450') html = site.read() soup = BeautifulSoup(html, 'html.parser') print(''.join(img['src'] for img in soup.select('div.highlight_strip_screenshot > img')))
Офлайн
221
я за использование специализированных инструментов, но если говорить именно по сути - то наверное нужно построить регулярное выражение иначе что то вида <div blabla>\s*<img blabla>
Офлайн
857
>>> import re >>> >>> text = 'abc\ndef\nghi' >>> >>> re.findall(r'f.*g', text) [] >>> re.findall(r'f.*g', text, re.DOTALL) ['f\ng'] >>>
Отредактировано py.user.next (Фев. 11, 2017 04:08:02)
Офлайн
0
aiscy
Благодарю за помощь 
Офлайн
0
aiscy
Кстати, а скачивание этих изображений как можно реализовать? Вроде пару строк, а всё никак не получается, перерыв Интернет…
Офлайн
9
hoolzНу как-то так:
Кстати, а скачивание этих изображений как можно реализовать?
# from bs4 import BeautifulSoup from urllib.request import urlopen, urlparse, urlunparse from mimetypes import guess_extension site = urlopen('http://steamcommunity.com/sharedfiles/filedetails/?id=308490450') html = site.read() soup = BeautifulSoup(html, 'html.parser') for full_url in (img['src'] for img in soup.select('div.highlight_strip_screenshot > img')): url = urlparse(full_url) opened_url = urlopen(urlunparse((url.scheme, url.netloc, url.path, '', '', ''))) # Собираем ссылку без параметров file_name = url.path.split('/')[3] file_extension = guess_extension(opened_url.info().get_content_type()) if file_extension in ('.jpeg', '.jpe'): # Костыль >:D file_extension = '.jpg' with open(file_name + file_extension, 'wb') as file: file.write(opened_url.read())
Офлайн