首頁 >後端開發 >php教程 >用bs4爬取标签内的text的问题

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

WBOY
WBOY原創
2016-06-06 20:13:071511瀏覽

<code class="python">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</code>

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

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

回复内容:

<code class="python">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</code>

以上是我的代码,使用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)这不是无中生有吗?

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn