用美丽的汤刮

时间:2014-04-14 14:59:24

标签: python python-2.7 web-scraping html-parsing beautifulsoup

我正在使用BeautifulSoup搜索文章。我想除了特定的部分之外刮掉文章体内的所有p标签。我想知道是否有人可以给我一个暗示我做错了什么?我没有得到错误,它只是没有任何不同。目前它从不受欢迎的部分抓取“打印”一词,并用其他p标签打印。

我想忽略的部分:soup.find(“div”,{'class':'add-this'})

    url: http://www.un.org/apps/news/story.asp?NewsID=47549&Cr=burundi&Cr1=#.U0vmB8fTYig

    # Parse HTML of article, aka making soup
    soup = BeautifulSoup(urllib2.urlopen(url).read())

    # Retrieve all of the paragraphs
    tags = soup.find("div", {'id': 'fullstory'}).find_all('p')
    for tag in tags:
        ptags = soup.find("div", {'class': 'add-this'})
        for tag in ptags:
            txt.write(tag.nextSibling.text.encode('utf-8') + '\n' + '\n')
        else:
            txt.write(tag.text.encode('utf-8') + '\n' + '\n')

1 个答案:

答案 0 :(得分:1)

一种选择是只传递recursive=False,以便不在p div的任何其他元素中搜索fullstory标记:

tags = soup.find("div", {'id': 'fullstory'}).find_all('p', recursive=False)
for tag in tags:
    print tag.text

这将只从div中获取顶级段落,打印完整的文章:

10 April 2014  The United Nations today called on the Government...
...
...follow up with the Government on these concerns.