br.follow_link
принимает либо Link
объект, либо ключевое слово arg (например, nr=0
).
br.links()
перечисляет все ссылки.
br.links(url_regex='...')
перечисляет все ссылки, URL-адреса которых соответствуют регулярному выражению.
br.links(text_regex='...')
перечисляет все ссылки, текст ссылки которых соответствуетРегулярное выражение.
br.follow_link(nr=num)
следует за num
-й ссылкой на странице со счетом, начинающимся с 0. Он возвращает объект ответа (того же типа, который возвращает br.open (...))
br.find_link(url='...')
возвращает объект Link
, чей url
точно равен данному URL.
br.find_link
, br.links
, br.follow_link
, br.click_link
все принимают одинаковые ключевые слова,Запустите help(br.find_link)
, чтобы просмотреть документацию по этим ключевым словам.
Редактировать: Если у вас есть целевой URL, которому вы хотите следовать, вы можете сделать что-то вроде этого:
import mechanize
br = mechanize.Browser()
response=br.open("http://www.example.com/")
target_url='http://www.rfc-editor.org/rfc/rfc2606.txt'
for link in br.links():
print(link)
# Link(base_url='http://www.example.com/', url='http://www.rfc-editor.org/rfc/rfc2606.txt', text='RFC 2606', tag='a', attrs=[('href', 'http://www.rfc-editor.org/rfc/rfc2606.txt')])
print(link.url)
# http://www.rfc-editor.org/rfc/rfc2606.txt
if link.url == target_url:
print('match found')
# match found
break
br.follow_link(link) # link still holds the last value it had in the loop
print(br.geturl())
# http://www.rfc-editor.org/rfc/rfc2606.txt