pythonデータキャプチャ3つの方法をまとめます。


3つのデータの取り込み方法
  • 正規表現(reライブラリ)
  • Beautiful Soup(bs 4)
  • lxml
  • *前に構築したダウンロードページ関数を利用して、ターゲットページのhtmlを取得します。https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/を例にとって、htmlを取得します。
    
    from get_html import download
    
    url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
    page_content = download(url)
    
    *このページの国家名と概況を登らなければならないと仮定して、この3つのデータを順次利用してキャプチャする方法でデータを取得します。
    1.正規表現
    
    from get_html import download
    import re
    
    url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
    page_content = download(url)
    country = re.findall('class="h2dabiaoti">(.*?)</h2>', page_content) #      list
    survey_data = re.findall('<tr><td bgcolor="#FFFFFF" id="wzneirong">(.*?)</td></tr>', page_content)
    survey_info_list = re.findall('<p>  (.*?)</p>', survey_data[0])
    survey_info = ''.join(survey_info_list)
    print(country[0],survey_info)
    
    2.Beautiful Soup(bs 4)
    
    from get_html import download
    from bs4 import BeautifulSoup
    
    url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
    html = download(url)
    #   beautifulsoup   
    soup = BeautifulSoup(html,"html.parser")
    #  
    country = soup.find(attrs={'class':'h2dabiaoti'}).text
    survey_info = soup.find(attrs={'id':'wzneirong'}).text
    print(country,survey_info)
    
    3.lxml
    
    from get_html import download
    from lxml import etree #   
    
    url = 'https://guojiadiqu.bmcx.com/AFG__guojiayudiqu/'
    page_content = download(url)
    selector = etree.HTML(page_content)#   xpath  
    country_select = selector.xpath('//*[@id="main_content"]/h2') #    
    for country in country_select:
     print(country.text)
    survey_select = selector.xpath('//*[@id="wzneirong"]/p')
    for survey_content in survey_select:
     print(survey_content.text,end='')
    
    実行結果:

    最後に、「pythonでネットワーク爬虫類を書く」の3つの方法の性能対比を参照して、次の図のようになります。

    ご参考までに。
    締め括りをつける
    ここでは、pythonのデータをつかむための3つの方法についての記事を紹介します。これまでの記事を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。