【发布时间】:2013-09-29 04:11:16
【问题描述】:
我有以下代码:
*** REST OF CODE OMITTED ***
try:
fullURL = blitzurl + movie
opener.open(blitzurl)
urllib2.install_opener(opener)
request = urllib2.Request(fullURL)
requestData = urllib2.urlopen(request)
htmlText = BeautifulSoup(requestData.read())
#panel = htmlText.find(match_class(["panelbox"]))
#table = htmlText.find("table", {"id" : "scheduletbl"})
print htmlText
blah....
except Exception, e:
print str(e)
print "ERROR: ERROR OCCURED IN MAIN"
我正在尝试获取 id 为“scheduletbl”的表的内容(它位于一个名为“panelbox”的类的 div 内
html 代码如下所示:
*** REST OF CODE OMITTED ***
<div class="panelbox">
<!-- !!!! content here !!!!! -->
<table border="0" cellpadding="2" cellspacing="0" id="scheduletbl" width="95%">
<tr>
<td align="left" colspan="3">
VC = Special Cinema (Velvet Class)<br/>
VS = Special Cinema (Velvet Suite)<br>
DC = Special Cinema (Dining Cinema)<br/>
S = Special Cinema (Satin)<br/>
3D = in RealD 3D<br/>
4DX = 4DX Cinema
</br></td>
</tr>
<tr>
<td class="separator2" colspan="3"><strong>BLITZMEGAPLEX - PARIS VAN JAVA, BANDUNG</strong></td>
</tr>
<tr>
<td colspan="3"><img align="left" height="16" hspace="5" src="../img/ico_rss_schedule_white.gif" width="16"/><strong><a class="navlink" href="../rss/schedule.php">RSS- Paris van Java</a></strong></td>
</tr>
<tr>
<td class="separator">Â </td>
<td class="separator" colspan="2">TUESDAY, 24 SEPTEMBER 2013</td>
</tr>
<tr>
<td class="separator">Â </td>
<td class="separator" rel="2D" width="20%">
10:30Â Â Â
</td>
<td class="separator" width="30%">
<a class="navlink" href="https://www.blitzmegaplex.com/olb/seats.php?showdate=2013-09-24&cinema=0100&movie=MOV1954&showtime=10:30&suite=N&movieformat=2D" target="_blank">Buy Tickets</a></td>
</tr></table></div></div>
<tr>
*** and more <tr> tags ***
*** REST OF CODE OMITTED ***
我遇到的问题是,当我尝试根据 div-id 提取内容时,它会在中间被截断(我猜是因为关闭标签不正确)。
当我尝试基于(使用其 id)提取内容时,也会发生这种情况。它也会在中间被切断,因为有一个 ,它不应该在那里。
解决此问题的最佳方法是什么?我无法控制这些数据,因为它是从某个网站上抓取的。
【问题讨论】:
标签: python html python-2.7 web-scraping beautifulsoup