4225
こちらの記事[Download search queries data using
Python](http://googlewebmastercentral.blogspot.jp/2011/12/download-search-
queries-data-using.html)を参考にOSX 10.10.1でWebMaster
Toolsで取得できる検索クエリデータのCSVダウンロードを試しています。

このサンプルで（[example-create-spreadsheet.py](https://code.google.com/p/webmaster-
tools-downloads/source/browse/example-create-
spreadsheet.py)）はスプレッドシートへの保存を例にしていますが、gitにダウンロードを行う別の[サンプル（example-simple-
download.py）](https://code.google.com/p/webmaster-tools-
downloads/source/browse/example-simple-
download.py)が用意されておりこちらを使ってダウンロードすることができました。

ただ、このソースでは期間指定ができず当方Python、Data APIともにほとんど知識が無く **そもそも期間指定が可能なのか、またはData
APIに指定を加えることで可能になるのか** ご教示いただけないかと思い質問しました。可能であれば、example-simple-
download.py及び[downloader.py](https://code.google.com/p/webmaster-tools-
downloads/source/browse/downloader.py)に追記する形で例を示していただけるととても有り難いです。

期間指定についてphpにはなりますがこちら[GWTdata: Download website data from Google Webmaster
Tools as CSV.のSetDaterangeの項](https://github.com/eyecatchup/php-webmaster-
tools-downloads#example-5---setdaterange)で日付指定が行えているようで指定はできるのではないかと考えております。

よろしくお願いします。
CC BY-SA 3.0
2015-01-07T02:41:53.627
3225
2015-01-08T09:38:45.447
2495
question
python
Google Data APIs Python Client Libraryを使ったWebMaster Toolsの検索クエリデータCSVダウンロードで期間指定を行いたい
動作確認まではしてないので、ご参考程度に。。

まず、`example-simple-download.py` の `DoDownload` の 呼び出しで `start_date`,
`end_date` を追加します。(範囲指定)

```

    diff -Nurb -i --strip-trailing-cr -Nur a/example-simple-download.py b/example-simple-download.py
    --- a/example-simple-download.py    1979-12-31 00:00:00.000000000 +0900
    +++ b/example-simple-download.py    2015-01-07 12:55:22.000000000 +0900
    @@ -23,6 +23,7 @@
    
     # Import the downloader
     from downloader import Downloader
    +from datetime import date
    
     # Email address and password used to sign-in to Webmaster Tools
     email = 'user@example.com'
    @@ -31,9 +32,12 @@
     website = 'http://www.example.com/'
     selected_downloads = ['TOP_QUERIES']
    
    +start_date = date(2014,12,1)
    +end_date = date(2015,1,1)
    +
     # Instantiate the downloader object
     downloader = Downloader()
     # Authenticate with your Webmaster Tools sign-in info
     downloader.LogIn(email, password)
     # Initiate the download
    -downloader.DoDownload(website, selected_downloads)
    +downloader.DoDownload(website, selected_downloads, start_date, end_date)
    
```

次に、`downloader.py` にて

(コメントを頂いたので修正)

LIST_PATH で取得したデータ( sites_json )の URL に、範囲指定を設定する。あとは既存の処理へ。。

~~URL を生成するネタの`LIST_PATH` に `&db=%s&de=%s` を追加して、`DoDownload` と、そこから呼ばれる
`_GetDownloadList` の引数に `start_date`, `end_date` を増やして、引き回して 期間指定のパラメータ付きの URL
を生成、あとは既存の処理へ。。~~

```

    diff -Nurb -i --strip-trailing-cr a/downloader.py b/downloader.py
    --- a/downloader.py 1979-12-31 00:00:00.000000000 +0900
    +++ b/downloader.py 2015-01-08 18:26:51.000000000 +0900
    @@ -72,7 +72,7 @@
    
         self._logged_in = True
    
    -  def DoDownload(self, site, tables_to_download):
    +  def DoDownload(self, site, tables_to_download, start_date, end_date):
         """Download CSV files and write them to disk.
    
         Downloader must be logged in before this method can be called, otherwise
    @@ -93,6 +93,7 @@
    
         for key in tables_to_download:
           url = sites_json.get(key)
    +      url = url + '&db=' + start_date.strftime("%Y%m%d") + '&de=' + end_date.strftime("%Y%m%d")
           if url:
             self._DownloadFile(url)
    
```
CC BY-SA 3.0
2015-01-07T04:15:57.673
4225
2015-01-08T09:38:45.447
2015-01-08T09:38:45.447
2992
2992
3225
answer