这段代码是小甲鱼树上的一段代码,这里的 messages.append(each.p.text.split('\n')[1].strip() + each.p.text.split('\n')[2].strip())
里面的split('\n')[1].strip()和split('\n')[2].strip()这是啥意思,越来越懵了
还有下一段代码里面的的.previous_sibling.previous_sibling.text这个为啥要用两个
希望大佬们给点解释和说明,膜拜
messages = []
targets = soup.find_all("div", class_="bd")
for each in targets:
try:
messages.append(each.p.text.split('\n')[1].strip() + each.p.text.split('\n')[2].strip())
except:
continue
# 找出一共有多少个页面
def find_depth(res):
soup = bs4.BeautifulSoup(res.text, 'lxml')
depth = soup.find('span', class_='next').previous_sibling.previous_sibling.text
print(int(depth))
return int(depth)
第一个问题
split('\n')[1].strip()和split('\n')[2].strip()
可以看到导演信息的内容是带换行的,你打印出来可以看到,通过split('\n')来把这段信息切割,strip()用来去除空格
切割出来的第一部分是个''空字符串,第二部分是导演演员信息,第三部分是年份剧情类型
第二个问题
.previous_sibling.previous_sibling.text是用来找出上上个兄弟节点的内容,用几个要根据实际的html的观察结果来确定
你爬虫的时候可以先把html爬出来,然后把目标内容先用idle测试下,是不是你需要的
|