У меня есть проект, над которым я работаю дома, который использует API rottentomatoes для сбора фильмов в настоящее время в кинотеатрах. Затем он собирает все изображения на странице imdb этих фильмов. Проблема, с которой я столкнулся, - это сбор изображений. Цель здесь заключается в том, чтобы заставить этот код работать под 8 секундами, но команда regex и я запускаю навсегда! В настоящее время я использую регулярное выражение:Разбор больших кусков HTML с re.findall()
re.findall('<img.*?>', str(line))
где линия кусок HTML
Кто-нибудь есть более регулярное выражение, что они могут думать о всех комментариях приветственных !! (возможно, более утонченный?)
Полный код ниже и прилагается.
import json, re, pprint, time
from urllib2 import urlopen
def get_image(url):
total = 0
page = urlopen(url).readlines()
for line in page:
hit = re.findall('<img.*?>', str(line))
total += len(hit)
# print('{0} Images total: {1}'.format(url, total))
return total
if __name__ == "__main__":
start = time.time()
json_list = list()
url = "http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json?apikey=<apikey>"
response = urlopen(url)
data = json.loads(response.read())
for i in data["movies"]:
json_dict = dict()
json_dict["Title"] = str(i['title'])
json_dict["url"] = str("http://www.imdb.com/title/tt" + i['alternate_ids']['imdb'])
json_dict["imdb_id"] = str(i['alternate_ids']['imdb'])
json_dict["count"] = get_image(str(json_dict["url"]))
json_list.append(json_dict)
end = time.time()
pprint.pprint(json_list)
runtime = end - start
print "Program runtime: " + str(runtime)
Рассматривали ли вы с помощью BeautifulSoup? – hwnd
[* sigh *] (http://stackoverflow.com/a/1732454/2581969) – roippi
Я хотел бы запустить его с помощью python2.7 std libs. Нет внешних зависимостей. –