俗话说的好:只要能爬下来,其他都不是事。
昨天写爬虫遇到这样一个情况:父标签的class内容都一样,里面子标签只有标签带文本,还是来张图比较明了:
我又要以站长之家的为例说明了
可以发现,这两块,父标签和子标签内容一模一样,findall第一个指向的是第一块的,直接用索引我试过,一开始是可以的,但是对于其他网页,有的并没有注册商这一块,这时候索引就对不上了,还有可能报IndexError
然后我就想,我能不能按照子标签的文本内容来找呢?这样我就肯定能找到了!
但是BeautifulSoup并没有提供按照文本查找的方法,怎么办呢?方法是人想出来的,BeautifulSoup也是人写出来的
这是我的实现方法,大神们如果有其他方法,欢迎讨论。
create_time_text = whois_check.find('li', class_='bor-b1s ') # 不能索引形式找,要用文本内容来找 while True: if u'创建时间' not in create_time_text.text: # 逐个匹配,找到创建时间所在的节点 create_time_text = create_time_text.next_sibling else: break