如何使用机械化方法找到具有特定id标签的链接对象?

时间:2019-04-10 12:00:21

标签: python html hyperlink mechanize

我正在编写一个Web抓取脚本,该脚本有时应单击具有特定ID标签的锚链接。我可以使用BeautifulSoup找到链接,但是找不到使用机械化获取mechanize.Link对象的方法。

到目前为止,这是我的代码。

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

我期望找到ID为“ cell_14_2”的链接对象,但在行上收到错误消息:

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

消息是:

TypeError: list indices must be integers, not str

我该怎么办才能找到mechanize.Link对象并单击它?

1 个答案:

答案 0 :(得分:0)

链接对象上的属性按(名称,值)对的序列保存。因此,您应该先创建字典,然后再按ID要求输入项目。例如:

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`