80593


**実行環境**  
windows10  
python3  
jupyterlab

**実現したいこと**  
ツイキャスのランキングから、配信者の名前とツイキャスプロフィールのURL、そしてtwitterURLを  
入手したいと考えています。

[code]

    import requests
    from bs4 import BeautifulSoup
    import re
    import pandas as pd
    
    url = 'https://twitcasting.tv/rankingajax.php?d=20210803&type=daily&genre=&limit=100&cat=like'
    res = requests.get(url)
    
    soup = BeautifulSoup(res.text, 'html.parser')
    #ツイキャスユーザーネーム取得
    Unames = soup.find_all('strong') #name
    
    data = []
    for i in range(100):
        haisinsya = Unames[i].text #配信者名前
        caslinks = soup.find_all('span', attrs={'class':'fullname smalldate'}) #ツイキャスすべてのリンク
        caslink = caslinks[i].text #タグを消し手最初の一つ
        linkend = caslink[1:] #@の削除
        #linkend
        casurl = 'https://twitcasting.tv/' + linkend #ツイキャスリンク前半と後半を合わせる
        #print(casurl)
        res2 = requests.get(casurl) #userlink
        soup2 = BeautifulSoup(res2.text, 'html.parser')
        
        twilinktag = soup2.find(href=re.compile("http://twitter.com/"))
        twilink = twilinktag.get('href')
        
        #print(twilink)
        details = {}
        detum = details
        detum['配信者'] = haisinsya
        detum['ツイキャスURL'] = casurl
        detum['TwitterURL'] = twilink
        #print(twilink)
        data.append(detum)
    
    print(data)    
    df = pd.DataFrame(data)   
    df.to_csv('ツイキャス.csv')
    
[/code]

**エラーコード**

[code]

    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-9-b8946fd02a1e> in <module>
         25     #twilink = alllink[1].attrs['href'] #全てのリンクからTwitterリンクを指定
         26     twilinktag = soup2.find(href=re.compile("http://twitter.com/"))
    ---> 27     twilink = twilinktag.get('href')
         28 
         29     #print(twilink)
    
    AttributeError: 'NoneType' object has no attribute 'get'
    
[/code]

**問題点**  
AttributeError: 'NoneType' object has no attribute 'get' のエラーに戸惑っています。  
解決策がわかりません。  
わかる人教えてください。


CC BY-SA 4.0
2021-08-04T05:59:40.747
80588
2021-08-04T08:08:59.063
47546
question
python beautifulsoup
beautifulsoupでのスクレイピングの際のAttributeError: 'NoneType' object has no attribute 'get'


twilinktagがNoneの場合にこのエラーが出ているのだと思います。

[code]

        twilinktag = soup2.find(href=re.compile("http://twitter.com/"))
    
[/code]

次のようにチェックをいれてはいかがでしょうか？

[code]

        twilinktag = soup2.find(href=re.compile("http://twitter.com/"))
        if twilinktag is None:
            continue
        twilink = twilinktag.get('href')
    
[/code]


CC BY-SA 4.0
2021-08-04T08:08:59.063
80593
2021-08-04T08:08:59.063
35558
80588
answer