Beispiel #1
0
def get_page_items(url):
        soup = BeautifulSoup(make_request(url), convertEntities=BeautifulSoup.HTML_ENTITIES)
        channels = []
        if url == base_url:
            for i in soup.noscript('a'):
                channels.append((i.string, i['href']))

        partners = []
        try:
            for i in soup('div', attrs={'class': "featured-studios-items clearfix"})[0]('a'):
                partners.append((i['title'], i['href'], i.find('img')['src']))
        except IndexError: pass

        top_picks = []
        items = soup('div', attrs={'class': "related-thumbs related-full"})[0]('div', attrs={'class': 'thumb-image'})
        for i in items:
            top_picks.append((i.img['alt'], i.a['href'], i.img['src']))

        featured = []
        try:
            for i in soup('div', attrs={'class': 'slider_container'})[0]('div', attrs={'class': "slide"}):
                featured.append((i.a['title'], i.a['href'], i.img['src']))
        except IndexError: pass

        more_topics = []
        try:
            if soup.find('div', attrs={'class': 'column'})('h2', text='MORE TOPICS'):
                for i in soup.find('div', attrs={'class':"horizontal-paging-container"})('a'):
                        more_topics.append((i.string, i['href']))
        except: pass

        addon_log('channels: %s, partners: %s, top_picks: %s, featured: %s, more_topics: %s'
                  %(len(channels), len(partners), len(top_picks), len(featured), len(more_topics)))
        return {
            'channels': channels,
            'partners': partners,
            'top_picks': top_picks,
            'featured': featured,
            'more_topics': more_topics
            }
Beispiel #2
0
def get_page_items(url):
    soup = BeautifulSoup(make_request(url),
                         convertEntities=BeautifulSoup.HTML_ENTITIES)
    channels = []
    if url == base_url:
        for i in soup.noscript('a'):
            channels.append((i.string, i['href']))

    partners = []
    try:
        for i in soup('div',
                      attrs={'class':
                             "featured-studios-items clearfix"})[0]('a'):
            partners.append((i['title'], i['href'], i.find('img')['src']))
    except IndexError:
        pass

    top_picks = []
    items = soup('div',
                 attrs={'class':
                        "related-thumbs related-full"})[0]('div',
                                                           attrs={
                                                               'class':
                                                               'thumb-image'
                                                           })
    for i in items:
        top_picks.append((i.img['alt'], i.a['href'], i.img['src']))

    featured = []
    try:
        for i in soup('div', attrs={'class':
                                    'slider_container'})[0]('div',
                                                            attrs={
                                                                'class':
                                                                "slide"
                                                            }):
            featured.append((i.a['title'], i.a['href'], i.img['src']))
    except IndexError:
        pass

    more_topics = []
    try:
        if soup.find('div', attrs={'class': 'column'})('h2',
                                                       text='MORE TOPICS'):
            for i in soup.find('div',
                               attrs={'class':
                                      "horizontal-paging-container"})('a'):
                more_topics.append((i.string, i['href']))
    except:
        pass

    addon_log(
        'channels: %s, partners: %s, top_picks: %s, featured: %s, more_topics: %s'
        % (len(channels), len(partners), len(top_picks), len(featured),
           len(more_topics)))
    return {
        'channels': channels,
        'partners': partners,
        'top_picks': top_picks,
        'featured': featured,
        'more_topics': more_topics
    }