【问题标题】:Extracting values from the从中提取值
【发布时间】:2016-10-25 03:20:31
【问题描述】:

    <a href="javascript:popUp('http://www.abcd.com/calendar/event.php?calendar=1&category=&event=43221&date=2016-02-22','520','520');" onmouseout="javascript:hideEventDetailsBox();" onmouseover="javascript:eventDetailsBox('<b>Time:</b> 9:00\xa0AM-4:30\xa0PM<br /><b>Title:</b> Hello!<br /><b>Location:</b> Cultural World N Avenue <br /><b>Description:</b> abcdefghi');" style="font-family:Tahoma;font-size:small;color:#000000;">

我想使用 Beautiful Soup4 从上面的 HTML 中删除字段(时间/标题/描述/位置。我无法在“onmouseover”中访问这些属性。我尝试了以下方法:

print g_dataItem.contents[5].find_all(onmouseover=True)
for tag in g_dataItem.contents[5].findAll(onmouseover=True):
    print  tag['onmouseover']

获得零件。

javascript:eventDetailsBox('时间: 9:00 AM-4:30 PM
标题:您好!
地点: 文化世界 N 大道
描述: abcdefghi');

但是,一旦我得到上面的 unicode,我就无法从这里提取字段。有人可以帮忙吗?

【问题讨论】:

    标签: javascript python web-scraping beautifulsoup


    【解决方案1】:

    试试这个:

    from bs4 import BeautifulSoup
    
    data = """<a href="javascript:popUp('http://www.abcd.com/calendar/event.php?calendar=1&amp;category=&amp;event=43221&amp;date=2016-02-22','520','520');" onmouseout="javascript:hideEventDetailsBox();" onmouseover="javascript:eventDetailsBox('&lt;b&gt;Time:&lt;/b&gt; 9:00\xa0AM-4:30\xa0PM&lt;br /&gt;&lt;b&gt;Title:&lt;/b&gt; Hello!&lt;br /&gt;&lt;b&gt;Location:&lt;/b&gt; Cultural World N Avenue &lt;br /&gt;&lt;b&gt;Description:&lt;/b&gt; abcdefghi');" style="font-family:Tahoma;font-size:small;color:#000000;">"""
    
    b = BeautifulSoup(data)
    onmouseover = b.find_all('a')[0].get('onmouseover').split("'")[1]
    
    b = BeautifulSoup(onmouseover)
    results = [{b_tag.text:b_tag.next_sibling.strip()} for b_tag in b.find_all('b')]
    print results
    

    结果:

    [
        {u'Time:': u'9:00\xa0AM-4:30\xa0PM'},
        {u'Title:': u'Hello!'},
        {u'Location:': u'Cultural World N Avenue'},
        {u'Description:': u'abcdefghi'}
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-15
      • 2023-03-28
      • 2018-10-11
      • 2020-02-08
      • 2018-07-25
      • 2012-04-28
      • 2021-10-07
      • 2023-04-04
      相关资源
      最近更新 更多