到目前为止我已经这样做了:
import urllib2,re,time
from bs4 import BeautifulSoup
base_url="http://nairobinow.wordpress.com/"
rawEventsData=urllib2.urlopen(base_url).read()
rawEventssoup = BeautifulSoup(rawEventsData)
events=rawEventssoup.findAll("div", {"id": re.compile(r'post-[\d+]')})
现在我想获取标签,场地和日期之后的数据。这是事件块(只是其中一个迭代部分):
<div class="post-17149 post type" id="post-17149">
<h2><a href="http://nairobinow.wordpress.com/2012/11/05/out/">Out of Town: Lamuest</a>
</h2><p>u
Dates: November 15-18, 2012<br/>
Venue: Lamu</p>
<p>Accommodation information: <a href="http://.../index.html"target="_blank"
>http://www.lamu.org/index.html</a></p></div>
非常感谢任何帮助
答案 0 :(得分:1)
如果我正确理解您的问题,听起来您对<p>
标签中的数据感兴趣。如果这是正确的......
如果您还不知道,.findAll()
会返回一个列表。在这种情况下,将返回具有相应div
的任何id
。
您需要做的只是迭代events
:
for event in events:
print event('p')[0]
这将返回:
<p>u Dates: November 15-18, 2012<br/> Venue: Lamu</p>
使用.contents
删除标签。请注意.contents
将根据其索引调用文本。即:.contents[0]
可能会返回Dates: November 15-18,
,而.contents[1]
可能会返回Venue: Lamu
。
你应该玩这个,找到适合你的需求。我希望这回答了这个问题,它有点含糊不清,但不管怎么说我还是试了一下。