Задания в pythonchallenge.com: задание 4 (follow the chain)

Пятое задание с названием «follow the chain» для меня оказалось совсем простым.

Переходим в исходный код страницы и видим подсказку: «urllib may help. DON’T TRY ALL NOTHINGS, since it will never end. 400 times is more than enough» — «urllib может помочь. Не пробуй все ничего, они никогда не закончатся. 400 раз более, чем достаточно». Чуть ниже этого комментария есть url с параметром nothing:

1
<a href="linkedlist.php?nothing=12345"><img src="chainsaw.jpg" border="0" /></a>
<a href="linkedlist.php?nothing=12345"><img src="chainsaw.jpg" border="0" /></a>

Нам нужно просто 400 раз сформировать url с параметром nothing и сделать запрос веб-страницы.
Вот моё решение:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from urllib.request import urlopen
 
nothing = '12345'
address = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
 
final = []
for i in range(0, 400):
    nothing = urlopen(address + nothing).read().decode().split(' ')[-1]
    final.append(nothing)
 
# используем генератор списков с условием
final_final = [x for x in final if not x.isdigit()]
print(final_final)
 
# или так, если использовать filter
print(list(filter(lambda x: not x.isdigit(), final)))
from urllib.request import urlopen

nothing = '12345'
address = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='

final = []
for i in range(0, 400):
	nothing = urlopen(address + nothing).read().decode().split(' ')[-1]
	final.append(nothing)

# используем генератор списков с условием
final_final = [x for x in final if not x.isdigit()]
print(final_final)

# или так, если использовать filter
print(list(filter(lambda x: not x.isdigit(), final)))

Среди элементов списка будет одно название html-страницы. На вики с решениями в основном вся разница в отсеивании только текстовых элементов в финальном списке.

Bookmark the permalink.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *