我正试图从这些pages中抓取信息。
我需要Internship
,Residency
,Fellowship
下的信息。我可以从表中提取值,但在这种情况下,我无法决定使用哪个表,因为标题(如Internship
)作为简单的纯文本存在于表外的div
标记下,并且之后,该表存在其我需要提取的值。我有很多这样的页面,并不是每个页面都有这些值,就像某些页面Residency
可能根本不存在一样。 (这会减少页面中的表总数)。此类页面的一个示例是this。在此页面中Internship
根本不存在。
我面临的主要问题是所有表都具有相同的属性值,因此我无法确定将哪个表用于不同的页面。如果页面中没有我感兴趣的任何值,我必须为该值返回一个空字符串。
我在Python中使用BeautifulSoup。有人可以指出,我怎样才能继续提取这些值。
答案 0 :(得分:1)
看起来标题和数据的ID都有唯一的值和标准后缀。您可以使用它来搜索适当的值。这是我的解决方案:
from BeautifulSoup import BeautifulSoup
# Insert whatever networking stuff you're doing here. I'm going to assume
# that you've already downloaded the page and assigned it to a variable
# named 'html'
soup = BeautifulSoup(html)
headings = ['Internship', 'Residency', 'Fellowship']
values = []
for heading in headings:
x = soup.find('span', text=heading)
if x:
span_id = x.parent['id']
table_id = span_id.replace('dnnTITLE_lblTitle', 'Display_HtmlHolder')
values.append(soup.find('td', attrs={'id': table_id}).text)
else:
values.append('')
print zip(headings, values)