我正在编写一个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对象并单击它?
答案 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`