你可以使用 BeautifulSoup 的select 选择器来做元素的 CSS 样式选择。
因此,根据您的描述,应该执行以下操作:
soup.select('.fb_pagZ li a')
假设,soup 是一个 BeautifulSoup 对象。
还要注意,要仅选择第一个元素,请使用select_one:
soup.select_one('.fb_pagZ li a')
遍历选择,并获取href 属性的值:
for element in soup.select('.fb_pagZ li a'):
href = element['href']
# Do stuffs
当不存在这样的元素时,soup.select('.fb_pagZ li a') 的输出将是一个空列表,因此上述迭代无论如何都不会发生。
如果你想明确说明空虚:
# We're iterating over the pages, generating URLs
# e.g. if the pages come in querystrings in format
# `?page=2`, appending that and getting
# soup object for the final URL
elements = soup.select('.fb_pagZ li a')
if elements:
for element in elements:
href = element['href']
如果你也想匹配href 属性:
for element in soup.select('.fb_pagZ li a'):
try:
href = element['href']
except KeyError:
continue
或者您可以使用.get 并检查None(这是错误的):
for element in soup.select('.fb_pagZ li a'):
href = element.get('href')
if not href:
continue