我正在使用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')
答案 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.