Python BeautifulSoup提取/wiki/前缀超链接的find方法疑问
相关语法解释
1. str.find() 方法的作用
Python 字符串内置的find()方法用于检索指定子串在目标字符串中首次出现的起始下标位置:
- 如果能找到匹配的子串,返回值为对应下标(从0开始计数)
- 如果没有找到任何匹配的子串,返回固定值
-1
2. 对应代码行的判断逻辑
你提到的代码行if link['href'].find("/wiki/") == -1:作用是过滤非维基内部文章链接,完整逻辑如下:
- 首先获取当前
a标签的href属性值(也就是链接地址) - 调用
find()方法检查该地址是否包含/wiki/前缀 - 如果返回值等于
-1,说明当前链接不包含/wiki/,不属于维基内部文章链接,执行continue直接跳过当前循环,处理下一个链接 - 如果返回值不等于
-1,说明链接符合要求,会继续执行后续代码,选中该链接作为爬取目标
你也可以用更易读的写法实现完全相同的效果:
if "/wiki/" not in link['href']: continue
内容的提问来源于stack exchange,提问作者Ahmet Atilla Colak
相关产品推荐
相关产品推荐

