Поиск номера версии сервиса на веб-странице Python2 - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь найти способ получения номера версии с веб-страницы.

В моем коде Python:

req = requests.get('http://mywebsite')
if req.status_code == 200:
    if versionNumber > 4.2:
        print "Version number is greater than 4.2!"
    elif versionNumber <= 4.2:
        print "Version number is equal or less than 4.2!"
else:
    pass

Сейчасреальный вопрос, как я могу получить номер версии с сайта?Номер версии отображается в запросе.

print req.content.find('Version ')

Вывод:

Возвращает номер индекса, с которого он начинается, 49394.

Я пробовал такие вещи, как:

start = req.content.find('Version ') # Returns 49394
end = start+12 # Version 4.10 is 12 characters long hence the start+12.
for i in range(start, end):
    sys.stdout.write(req.content[i]) # Returns Version 4.10
    i += 1
    if i == end:
        break

Но это не очень хороший способ.Это не сработает, если изменить язык, потому что позиция жестко закодирована.

Какие-либо предложения о том, как я могу получить номер версии с сайта?

1 Ответ

0 голосов
/ 06 июня 2018

Я нашел способ сделать это!Вот шаги для других людей:

from bs4 import BeautifulSoup
import requests, re

req = requests.get('http://mywebsite')
if req.status_code == 200:
    src = req.text # req.content works aswell
    txt = BeautifulSoup(src, "lxml")
    element = txt.find('h3', id=ID) # The first param is the element to look for, in my case h3. The second parameter is optional, it might be an id if you're looking for example divs.
    versionNumber = ''.join(map(str, str(element.contents).encode('UTF-8')))
    versionNumber = re.findall('\d+', versionNumber)
    while len(versionNumber) > 2:
        versionNumber.pop(0)
    versionNumber = versionNumber[0]+'.'+versionNumber[1]
    if float(versionNumber) > 4.2:
        print "Version number is greater than 4.2!"
    elif float(versionNumber) <= 4.2:
        print "Version number is equal or less than 4.2!"
else:
    pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...