54229


Google検索順位取得→エクセルに落とすというtoolをpythonで作っていますが、`got an unexpected keyword
argument`というエラーメッセージがでてしまい、どうしてもうまく実行されません。

Excelファイル読み込みあたりのencodingのところで「予期しないキーワード引数」を受け取りましたと表示されなにか不具合が起きているのですが、自己解決ができませんでした。

どなたか教えていただければ幸いです。

# ソースコード

[code]

    # coding:utf-8
    import requests
    import bs4
    import csv
    import datetime
    import pandas as pd
    from time import sleep
    
    #出力データ
    output_data = []
    # output_data.append(['クエリ','検索順位', 'サイトtitle', 'サイトURL', '日付'])
    today=datetime.date.today()#今日の日付
    
    #検索順位取得処理
    def search_url_google(search_url_keyword):
        if search_url_keyword and search_url_keyword.strip():
            #Google検索の実施
            search_url = 'https://www.google.co.jp/search?hl=ja&num=100&filter=0&q=' + search_url_keyword
            print("[INFO]Googleにアクセスしました")
            res_google = requests.get(search_url)
            print("[INFO]検索結果の取得に成功しました。")
            print("-----------------------------------------------------------------------")
            res_google.raise_for_status()
            #BeautifulSoupで掲載サイトのURLを取得
            bs4_google = bs4.BeautifulSoup(res_google.text, 'html.parser')
            link_google = bs4_google.select('div > h3.r > a')
    
            for i in range(len(link_google)):
                #なんか変な文字が入るので除く
                site_url = link_google[i].get('href').split('&sa=U&')[0].replace('/url?q=', '')
                site_title=bs4_google.select('div > h3.r > a')[i].text#textで中身抽出。stringでもいいけどなぜかnoneが返る
                if 'https://' in site_url or 'http://' in site_url:
                    #サイトの内容を解析
                    try:
                        #print("[{}位:「{}」,URL「{}」]".format(i+1,site_title,site_url))
                        rank = i+1
                        title = site_title
                        URL = site_url
    
                        output_data_new = search_url_keyword, rank, title, URL, today
                        output_data.append(output_data_new)
                    except:
                        continue
    
    
    
    #CSVに書き出し
    def csv_write():
        csv_file = open('[database].csv', 'a', encoding="utf_8_sig")
        csv_writer = csv.writer(csv_file, lineterminator='\n')
        csv_writer.writerows(output_data)
        csv_file.close()
    
    
    #Excelファイル読み込み
    file = pd.read_excel('z.xlsx', encoding='utf8')
    sheet_def = file.parse('Sheet1', header=None)
    sheet_def = sheet_def[2:]
    # 行ごとに処理
    for i, row in sheet_def.iterrows():
        print('検索ワード:{}'.format(sheet_def.iat[i-2,1]))
        search_url_google(sheet_def.iat[i-2,1])
        sleep(2)
    csv_write()
    print("ok")#終わり
    
[/code]

# エラーメッセージ

[code]

    File "grc_test.py", line 57, in <module>
        sheet_def = file.parse('Sheet1', header=None)
      File "/usr/local/lib/python3.7/site-packages/pandas/core/generic.py", line 5067, in __getattr__
        return object.__getattribute__(self, name)
    AttributeError: 'DataFrame' object has no attribute 'parse'
    
[/code]

# 環境

python 3.7.3  
pip 19.0.3

astroid==2.2.5  
beautifulsoup4==4.7.1  
certifi==2019.3.9  
chardet==3.0.4  
idna==2.8  
isort==4.3.17  
lazy-object-proxy==1.3.1  
mccabe==0.6.1  
numpy==1.16.2  
pandas==0.24.2  
pylint==2.3.1  
python-dateutil==2.8.0  
pytz==2019.1  
requests==2.21.0  
six==1.12.0  
soupsieve==1.9.1  
typed-ast==1.3.1  
urllib3==1.24.1  
wrapt==1.11.1  
xlrd==1.2.0


CC BY-SA 4.0
2019-04-16T22:10:56.653
54220
2019-04-17T11:58:16.547
2019-04-17T11:58:16.547
32946
32946
question
python python3
got an unexpected keyword argumentというエラーメッセージ


エラーメッセージ読みましょう。  
リファレンス読みましょう。  
encoding引数が要らないのでは？


CC BY-SA 4.0
2019-04-17T01:38:43.900
54227
2019-04-17T01:38:43.900
29996
54220
answer


pandasのバージョンが記載されておりませんが、最新版（ `pandas 0.24.2` ）のリファレンスによると、そもそも
`pandas.ExcelFile` で初期化時に直接ファイルパスを渡して読み込むという使い方が記載されておりません。

代わりに、 `pandas.read_excel` を使い、ファイルを読み込むのはいかがでしょうか。

[Input/Output — pandas 0.24.2 documentation](http://pandas.pydata.org/pandas-
docs/stable/reference/io.html#excel)  
[pandas.read_excel — pandas 0.24.2
documentation](http://pandas.pydata.org/pandas-
docs/stable/reference/api/pandas.read_excel.html#pandas.read_excel)


CC BY-SA 4.0
2019-04-17T01:59:24.663
54229
2019-04-17T02:08:06.660
2019-04-17T02:08:06.660
29826
29826
54220
answer