#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`