当前位置:Gxlcms > PHP教程 > 用bs4爬取标签内的text的问题

用bs4爬取标签内的text的问题

时间:2021-07-01 10:21:17 帮助过:53人阅读

def get_coursename(info):
  info = get_content(url)
  soup = BeautifulSoup(info)
  
  all_coursename = soup.find_all('h2', class_="color-primary-text headline-1-text flex-1")
  
  #print all_coursename
  
  f = open("course_coursename.txt","w")
  for coursename in all_coursename:
      detail = soup.h2.get_text()
      
      print detail
      f.write(detail + '\n' )
      f.close
  return all_coursename

以上是我的代码,使用soup.find_all()函数后在coursera得到64个标签段,但是使用递归对象和写入文件后,controlb后得到了64个第一个课程的名字,如下,求大神解答

Buddhism and Modern Psychology
Buddhism and Modern Psychology
.
.
.
.

回复内容:

def get_coursename(info):
  info = get_content(url)
  soup = BeautifulSoup(info)
  
  all_coursename = soup.find_all('h2', class_="color-primary-text headline-1-text flex-1")
  
  #print all_coursename
  
  f = open("course_coursename.txt","w")
  for coursename in all_coursename:
      detail = soup.h2.get_text()
      
      print detail
      f.write(detail + '\n' )
      f.close
  return all_coursename

以上是我的代码,使用soup.find_all()函数后在coursera得到64个标签段,但是使用递归对象和写入文件后,controlb后得到了64个第一个课程的名字,如下,求大神解答

Buddhism and Modern Psychology
Buddhism and Modern Psychology
.
.
.
.

你的for循环里应该使用循环变量coursename而不是soup

代码不全啊,我发现几个小问题。你的get_coursename()的参数 info 是不是多余了?另外你在get_coursename()里面直接调用get_content(url)这不是无中生有吗?

人气教程排行