Записки Вредного программиста

enjoy, motherfuckers ;)

Парсинг на Python или как скачать обои в большом разрешении

В сегодняшней заметки мы с вами получим порядка 1500+ в высоком разрешении, позаимствовав из с некоторого сайта путем парсинга html страниц.

Немного поковырялся я в Python (больно понравился мне его синтаксис) и чтобы закрепить полученные начальные знания решил на нем небольшую прикладную задачку, которая сводится к взятию с сайта b000.ru всех картинок. Чуть ниже исходный код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# -*- coding: utf-8 -*-
'''
image parser
(C) vredniy
vredniy.ru
'''
from urllib2 import Request, urlopen, URLError, HTTPError
from urllib import urlretrieve
import os
import sys
import re
import time

def doRoutine(url):
     req = Request(url)
     try: response = urlopen(req)

except HTTPError, e:
     print e.code
     return 0
except URLError, e:
     print e.reason
     return 0
else:
     print url
     data = response.read()

m = re.search('<div id="image_list">[\w\W]*?<h1>(.*?)</h1>[\W\w]+?<a href="(.+?)"><img[\w\W]*?alt="(.*?)"', data, re.IGNORECASE & re.UNICODE);
if m:
     downloadImage(m.group(2), m.group(3))


def downloadImage(imageUrl, imageName):
     urlretrieve(imageUrl, './images/' + imageName + '.jpg')
     print imageName + ' скачано'

def main(url):
     counter = 1
     while (counter < 1900):
     counter = counter + 1
     doRoutine("%s%d" % (url, counter))

if __name__ == "__main__":
url = 'http://b000.ru/view/'
main(url)

И в папочке images сохраняются все обои, правда занимает это продолжительное время :)

Комментарии