Python problem yardım

Merhabalar http://www.pythonchallenge.com/ şu sitedeki soruları çözüyorum ve 4. bölümde takıldım http://www.pythonchallenge.com/pc/def/linkedlist.php yardımcı olabilecek varmı acaba?
liknteki resime tıkladıgımız zaman bit php sayfası çıkıyor, url adresinde bulunan numarayı sayfada bulunan numara ile değiştirmemiz lazım . Bunu yapınca tekrar farklı bir numara veriyor,
bunu bir dongü halinde yapmak lazım , yardımcı olursanız sevinirim.

Sonra ne olacak?

Şu kodu kullanın:

from urllib import request

base_url = b"http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing="

number = b"12345"

while True:
    data = request.urlopen((base_url + number).decode()).read()
    number = data.rsplit(b" ", 1)[1]
    print(data)

en son bir kelime verecek.

Farkettim, verdiğim kodu çalıştırınca gözünüz çıktılarda olsun.

Yes. Divide by two and keep going. çıktısını veriyor , üsteki numara 16044 oldugu için ikiye böldüm ve number = b"8022" kodu bu şekilde değiştirdim.
Çalıştırdıgımda bir süre sonra bu çıktıyı veriyor There maybe misleading numbers in the text. One example is 82683. Look only for the next nothing and the next nothing is 63579'
sonrada hata verip kapanıyor…

Hatayı verdikten sonra data değişkenini kontrol edin.

Data’yı kontrol edince peak.html diye sonuç cıkıyor.
Aynı sonucu ben şöyle buldum.

from webbot import Browser
import re

web = Browser()
num = str(16044/2)
link = 'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
web.go_to(link + num)

d2 = re.compile('and the next nothing is (\d+)')
while True:
    gecici = web.get_page_source()
    d3 = d2.search(gecici)
    yen = d3.group(1)
    if d3 == None:
        break
    web.go_to(link + yen)```

Gitmeniz gereken bir sonraki adres orası.

webbot, selenium gibi bir teknoloji; burada gereksiz.

1 Beğeni

Düzenliyecek olursam son olarak böyle birşey yazdım.

from urllib import request
from webbot import Browser

base_url = b'http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing='
go_url = 'http://www.pythonchallenge.com/pc/def/'

#number = b"12345"
#16044/2= 8022
number = b"8022"

while True:
    data = request.urlopen((base_url + number).decode()).read()
    if not data.rsplit(b" ", 1)[-1].isdigit():
        break
    number = data.rsplit(b" ", 1)[1]
    print(data)
print(str(data, 'utf-8'))
web = Browser()
web.go_to(go_url + str(data, 'utf-8'))

@Nikolays_Tesla @EkremDincel Neden str yerine bytes kullanıyorsunuz?

Dönüş değeri öyleydi ben de öyle kullandım.

1 Beğeni