回答編集履歴
3
検索パラメタの"from"を削除
answer
CHANGED
@@ -28,4 +28,22 @@
|
|
28
28
|
worksheet.update_cell(cell.row, cell.col +1, publisher.text)
|
29
29
|
worksheet.update_cell(cell.row, cell.col +2, item.find('title').text)
|
30
30
|
worksheet.update_cell(cell.row, cell.col +3, author.text)
|
31
|
+
```
|
32
|
+
|
33
|
+
検索APIを確認してみました。
|
34
|
+
[https://iss.ndl.go.jp/information/wp-content/uploads/2020/03/ndlsearch_api_20200302_jp.pdf](https://iss.ndl.go.jp/information/wp-content/uploads/2020/03/ndlsearch_api_20200302_jp.pdf)
|
35
|
+
年月日の指定で、月を指定すると、年だけのものにはヒットしないようです。
|
36
|
+
パラメタの'from'をコメントアウトして見て下さい。
|
37
|
+
```python
|
38
|
+
# params['from'] = '1980-01-01'
|
39
|
+
```
|
40
|
+
あと、以下のコードの意味はなんでしょうか。
|
41
|
+
検索が成功したとき、len(items)がcntに等しくなってしまうため。
|
42
|
+
無限ループになってしまいます。
|
43
|
+
確認して下さい。
|
44
|
+
```python
|
45
|
+
cnt = int(params['cnt'])
|
46
|
+
idx = int(params['idx'])
|
47
|
+
if len(items) < cnt:
|
48
|
+
break
|
31
49
|
```
|
2
NameError: name 'publisher' is not definedについて
answer
CHANGED
@@ -16,4 +16,16 @@
|
|
16
16
|
valueで値を参照してください。
|
17
17
|
```python
|
18
18
|
params['title'] = cell.value
|
19
|
+
```
|
20
|
+
|
21
|
+
参照している変数publisherがforループの外です。
|
22
|
+
publisherの処理が、forループの内側のときははインデントをforと合わせる必要があります。
|
23
|
+
```python
|
24
|
+
else:
|
25
|
+
list_map['publisher'].append('不明')
|
26
|
+
#インデントがあっていないので、forのインデントに合わせてください
|
27
|
+
#sheetに反映
|
28
|
+
worksheet.update_cell(cell.row, cell.col +1, publisher.text)
|
29
|
+
worksheet.update_cell(cell.row, cell.col +2, item.find('title').text)
|
30
|
+
worksheet.update_cell(cell.row, cell.col +3, author.text)
|
19
31
|
```
|
1
cellの代入を変更しました。
answer
CHANGED
@@ -10,4 +10,10 @@
|
|
10
10
|
```python
|
11
11
|
# 検索リクエスト
|
12
12
|
r = s.get('http://iss.ndl.go.jp/api/opensearch', params=params)
|
13
|
+
```
|
14
|
+
|
15
|
+
cell_list = worksheet.range("A4:A5")だと、cell情報も入っているため、これを参照するときは
|
16
|
+
valueで値を参照してください。
|
17
|
+
```python
|
18
|
+
params['title'] = cell.value
|
13
19
|
```
|