Как мне найти объект ссылки с определенным id-тегом с помощью mechanize?

#python #html #hyperlink #mechanize

#python #HTML #гиперссылка #механизировать

Вопрос:

Я пишу скрипт веб-очистки, который в какой-то момент должен щелкнуть ссылку привязки с определенным id-тегом. Я могу найти ссылку с помощью BeautifulSoup, однако я не могу найти способ получить объект mechanize.Link с помощью mechanize.

Пока это мой код.

 import mechanize

br = mechanize.Browser()
response = br.open("myUrl")

for link in br.links():
    if str(link.attrs["id"]) == "cell_14_2":
        click_link(link)
    break
  

Я ожидаю найти объект ссылки с идентификатором «cell_14_2», но я получаю сообщение об ошибке в строке:

 if str(link.attrs["id"]) == "cell_14_2":
  

Сообщение:

 TypeError: list indices must be integers, not str
  

Что я могу сделать, чтобы найти объект mechanize.Link и щелкнуть по нему?

Ответ №1:

Атрибуты объекта ссылки хранятся в виде последовательности пар (имя, значение). Поэтому вам следует сначала создать словарь, прежде чем запрашивать элемент по идентификатору. Например:

 for link in br.links():
    attrs = dict(link.attrs)  # First create a dict
    if str(attrs["id"]) == "cell_14_2":  # Now you can ask for the `id`