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
r = br.open("http://www.somewebsite.com")
br.find_link(url='http://www.somewebsite.com/link1.html')
req = br.click_link(url='http://www.somewebsite.com/link1.html')
br.open(req)
print br.response().read()
或者,它也可以通过链接的文本工作:
r = br.open("http://www.somewebsite.com")
br.find_link(text='Click this link')
req = br.click_link(text='Click this link')
br.open(req)
print br.response().read()
从代码上看,我想你想
nr与find_link调用下的文档相同。
编辑:在我的第一个粗略的一瞥,我没有意识到“链接”不是一个简单的链接。
br.follow_link
接受Link
对象或关键字arg(例如nr=0
)。br.links()
列出所有链接。br.links(url_regex='...')
列出其url与regex匹配的所有链接。br.links(text_regex='...')
列出其链接文本与regex匹配的所有链接。br.follow_link(nr=num)
跟随页面上的第num
个链接,计数从0开始。它返回一个响应对象(与br.open(…)返回的类型相同)br.find_link(url='...')
返回其url
正好等于给定url的Link
对象。br.find_link
、br.links
、br.follow_link
、br.click_link
都接受相同的关键字。运行help(br.find_link)
查看有关这些关键字的文档。编辑:如果您有一个要跟踪的目标url,可以执行以下操作:
我找到了这种方法,供不想使用regex的人参考:
或者,它也可以通过链接的文本工作:
相关问题 更多 >
编程相关推荐