Как искать символы с помощью регулярных выражений - PullRequest
0 голосов
/ 28 марта 2019

Изучение Python и попытка получить идентификатор пользователя со страницы HTML с помощью регулярных выражений.(LTT - это сайт, просто для практики).

Я хочу иметь возможность ввести 'findID username ' в cmd и вернуть 6-значный идентификационный номер.

Потратил часы, пытаясь использовать другой код и просматривая ссылки,Может быть, кто-то может объяснить это просто для меня.Я могу настроить объект searchRegex для правильной идентификации 6-значных чисел на странице, но он не находит правильную 6-значную комбинацию, которую я ищу.(Захватывает еще 6 случайных цифр в отличие от 6 конкретных цифр идентификатора пользователя)

import re, requests, sys, time
if len(sys.argv)>1:
    search=requests.get('https://linustechtips.com/main/search/?&q='+str(sys.argv[1:])+'&type=core_members')
    searchRegex=re.compile(r"^'$\d\d\d\d\d\d^'$")
    ID=searchRegex.search(search.text)
    print(ID)
    time.sleep(10)
else:
    print('Enter a search term...')

Я пробовал много разных способов заставить код распознавать символ.Но когда я пытаюсь так, возвращает None.Почему регулярное выражение может найти 6 цифр, но не может найти 6 цифр, начинающихся и заканчивающихся '.

Это HTML-страница, на которой я ее тестирую.

view-source:https://linustechtips.com/main/search/?&q=missiontomine&type=core_members

1 Ответ

0 голосов
/ 28 марта 2019

Попробуйте регулярное выражение: (?<=profile\/)\d{6}

Демонстрация

Текст HTML имеет идентификатор пользователя как часть URL, например:

https://linustechtips.com/main/profile/600895-missiontomine/?do=hovercard

(?<=profile\/) смотрит позитивно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...