bs爬下div后如何获得最外层标签?

初学python,写了个小爬虫,是对贴吧的爬取,希望做到由已知发言内容得到用户名

用find_all()爬的含信息的div头。class属性是"l_post l_post_bright j_l_post clearfix",这个div的data-field里有用户id和发言的content。但是他中间会有很多很多别的标签,就想问下前辈们有没有什么方法可以简单的就取到最外面的标签。嗯,把中间的统统过滤掉!
阅读 4.6k
2 个回答
   r = requests.get("http://tieba.baidu.com/p/2108034524?pn=4")
   soup = BeautifulSoup(r.content, "lxml")
   users = soup.find_all("div", class_="l_post")
   for user in users:
       print(user["data-field"])
       # 其他处理

然后对取出的内容再进行处理

    <div class="l_post l_post_bright j_l_post clearfix " data-field='{"author":{"user_id":348570172,   "user_name":"\u6446\u6446\u821e\u66f2","props":null},"content":{"post_id":31489927386,"is_anonym":false,"forum_id":874949,"thread_id":2108034524,"content":"912904081@qq.com\u8c22\u8c22\u6492","post_no":94,"type":"0","comment_num":0,"props":null,"post_index":0,"pb_tpoint":null}}'> <div class="d_author"> <ul class="p_author">
    ...
    </div>

要爬取的是这个div最外层的标签里user_name和content,中间还有好多好多标签,就是把这个div里的都爬下来了,想知道怎么就留最外面我需要的这个

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题