find_all只刮取最后一个值

时间:2019-06-14 17:58:52

标签: python web-scraping beautifulsoup

我正在尝试抓取一个网站,并且我使用的是find_all,但它仅返回页面中的最后一个div,而忽略了其他两个!任何想法?

这是Chrome检查器检查的来源:

 Handler handler = new Handler();
        int[] colors = {Color.BLUE, Color.WHITE, Color.YELLOW, Color.GREEN};
        int i;
 Runnable runnable = new Runnable () {
        @Override
        public void run() {
             i = i % colors.length;
             yourView.setTextColor(colors[i]);
             i++;
             handler.postDelayed(this, 1000);
         }                
      }
handler.postDelayed(runnable, 1000);

我检查了网站的源代码,仅发现一个具有相同名称的div:

<div id="listDesc" class="pane show pane"> ... <div> ==$0
<p> ... </p>
<p> ... </p>
<div id="listDesc" class="pane show pane"> ... <div>
<p> ... </p>
<p> ... </p>
<p> ... </p>
<div id="listDesc" class="pane show pane"> ... <div>
<p> ... </p>
<p> ... </p>

我尝试了不同的方法分别刮除div,尽管那也行不通!这是我正在使用的代码。

<div id="listDesc" class="pane showpane">

如何获取所有三个div的内容?

1 个答案:

答案 0 :(得分:1)

我能够通过遍历id来修复它:

    for match in soup.find_all('div', id="listDesc"):
        print(match.text)