AINIDEREN 发表于 2020-4-1 19:48:43

豆瓣爬虫爬去资料的问题

这段代码是小甲鱼树上的一段代码,这里的 messages.append(each.p.text.split('\n').strip() + each.p.text.split('\n').strip())
里面的split('\n').strip()和split('\n').strip()这是啥意思,越来越懵了{:5_94:}
还有下一段代码里面的的.previous_sibling.previous_sibling.text这个为啥要用两个
希望大佬们给点解释和说明,膜拜{:5_92:}

messages = []
    targets = soup.find_all("div", class_="bd")
    for each in targets:
      try:
            messages.append(each.p.text.split('\n').strip() + each.p.text.split('\n').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)

十月故里 发表于 2020-4-1 19:48:44

第一个问题
split('\n').strip()和split('\n').strip()
可以看到导演信息的内容是带换行的,你打印出来可以看到,通过split('\n')来把这段信息切割,strip()用来去除空格
切割出来的第一部分是个''空字符串,第二部分是导演演员信息,第三部分是年份剧情类型

第二个问题
.previous_sibling.previous_sibling.text是用来找出上上个兄弟节点的内容,用几个要根据实际的html的观察结果来确定
你爬虫的时候可以先把html爬出来,然后把目标内容先用idle测试下,是不是你需要的

wp231957 发表于 2020-4-1 19:52:22

本帖最后由 wp231957 于 2020-4-1 19:53 编辑

这东西不一定非要去解析别人的代码
只要确定静态爬取可爬,那便有N种办法
页: [1]
查看完整版本: 豆瓣爬虫爬去资料的问题