質問編集履歴
3
ご指摘を頂きまして変更致しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
sqlite構文エラーを解決したいです。
|
body
CHANGED
@@ -3,17 +3,13 @@
|
|
3
3
|
この解決方法をご教示頂けますと幸いです。
|
4
4
|
|
5
5
|
####詳細
|
6
|
-
なんのエラーが出ているのかもわからない状態です。
|
6
|
+
なんの構文エラーが出ているのかもわからない状態です。
|
7
7
|
こちらは、本で学習したものを応用したものでコードの解説が特になくコードの中で無意味だと考えたものは全て端折りました。
|
8
8
|
調べようとしたのですがrecordsとsqliteを組み合わせたデータベースの操作方法に関して検索してもあまり出てこないため困っている所です。
|
9
9
|
|
10
|
-
```エラー
|
11
|
-
sqlalchemy.exc.InterfaceError: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
|
12
|
-
```
|
13
10
|
|
11
|
+
```python3
|
14
12
|
|
15
|
-
|
16
|
-
```python3
|
17
13
|
import requests
|
18
14
|
from bs4 import BeautifulSoup
|
19
15
|
import re
|
@@ -27,7 +23,8 @@
|
|
27
23
|
db = records.Database('sqlite:///database/movies.db')
|
28
24
|
for base in html_soup.find("ul").find_all("li"):
|
29
25
|
db.query('''CREATE TABLE IF NOT EXISTS url(
|
26
|
+
url text PRIMARY KEY,
|
30
|
-
|
27
|
+
visited_at datetime NULL)''')
|
31
28
|
|
32
29
|
#タイトルのスクレイピング
|
33
30
|
def scrape_movies_title():
|
@@ -42,28 +39,10 @@
|
|
42
39
|
print(links)
|
43
40
|
|
44
41
|
def s(url):
|
45
|
-
db.query('''INSERT INTO url
|
42
|
+
db.query('''INSERT INTO url (url,created_at)
|
46
|
-
VALUES (:url)''',url=url)
|
43
|
+
VALUES (:url,CURRENT_TIMESTAMP)''',url=url)
|
47
44
|
s(scrape_movies_links)
|
48
45
|
|
49
|
-
"""
|
50
|
-
#リンクの整合性を保つためのデータベースの処理
|
51
|
-
def links(url):
|
52
|
-
try:
|
53
|
-
db.query('''INSERT INTO url(url,created_at)
|
54
|
-
VALUES(:url,CURRENT_TIMESTAMP)''',url=url)
|
55
|
-
except IntegrityError as ie:
|
56
|
-
#リンクが存在するため次に進む
|
57
|
-
pass
|
58
|
-
"""
|
59
|
-
"""
|
60
|
-
#リンクがアップデートされてもいいようにするための処理
|
61
|
-
def mark_visit(url):
|
62
|
-
db.query('''UPDATE url SET visited_at=CURRENT_TIMESTAMP
|
63
|
-
WHERE url=:url''',url=url)
|
64
|
-
"""
|
65
|
-
|
66
|
-
"""
|
67
46
|
#データベース上でのスクレイピングデータの取扱
|
68
47
|
def get_random_unvisited_link():
|
69
48
|
db.query('''SELECT * FROM url
|
@@ -79,13 +58,4 @@
|
|
79
58
|
t = 1
|
80
59
|
t += 1
|
81
60
|
print(t,"new_links_found")
|
82
|
-
|
83
|
-
"""
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
61
|
```
|
2
エラーについて更新いたしました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
(sqlite3.
|
1
|
+
(sqlite3.InterfaceError) Error binding parameter 0 - probably unsuppoを解決したいです。
|
body
CHANGED
@@ -3,14 +3,12 @@
|
|
3
3
|
この解決方法をご教示頂けますと幸いです。
|
4
4
|
|
5
5
|
####詳細
|
6
|
-
なんの
|
6
|
+
なんのエラーが出ているのかもわからない状態です。
|
7
7
|
こちらは、本で学習したものを応用したものでコードの解説が特になくコードの中で無意味だと考えたものは全て端折りました。
|
8
8
|
調べようとしたのですがrecordsとsqliteを組み合わせたデータベースの操作方法に関して検索してもあまり出てこないため困っている所です。
|
9
9
|
|
10
10
|
```エラー
|
11
|
-
sqlalchemy.exc.
|
11
|
+
sqlalchemy.exc.InterfaceError: (sqlite3.InterfaceError) Error binding parameter 0 - probably unsupported type.
|
12
|
-
[SQL: INSERT INTO (url,created_at)
|
13
|
-
VALUES (?,CURRENT_TIMESTAMP)]
|
14
12
|
```
|
15
13
|
|
16
14
|
|
1
かなり端折りました。やりたいこととしましては、データベースにスクレイピングしたurlを格納することです。
title
CHANGED
File without changes
|
body
CHANGED
@@ -29,8 +29,7 @@
|
|
29
29
|
db = records.Database('sqlite:///database/movies.db')
|
30
30
|
for base in html_soup.find("ul").find_all("li"):
|
31
31
|
db.query('''CREATE TABLE IF NOT EXISTS url(
|
32
|
-
url text PRIMARY KEY,
|
33
|
-
|
32
|
+
url text PRIMARY KEY)''')
|
34
33
|
|
35
34
|
#タイトルのスクレイピング
|
36
35
|
def scrape_movies_title():
|
@@ -45,10 +44,28 @@
|
|
45
44
|
print(links)
|
46
45
|
|
47
46
|
def s(url):
|
48
|
-
db.query('''INSERT INTO
|
47
|
+
db.query('''INSERT INTO url
|
49
|
-
VALUES (:url
|
48
|
+
VALUES (:url)''',url=url)
|
50
49
|
s(scrape_movies_links)
|
51
50
|
|
51
|
+
"""
|
52
|
+
#リンクの整合性を保つためのデータベースの処理
|
53
|
+
def links(url):
|
54
|
+
try:
|
55
|
+
db.query('''INSERT INTO url(url,created_at)
|
56
|
+
VALUES(:url,CURRENT_TIMESTAMP)''',url=url)
|
57
|
+
except IntegrityError as ie:
|
58
|
+
#リンクが存在するため次に進む
|
59
|
+
pass
|
60
|
+
"""
|
61
|
+
"""
|
62
|
+
#リンクがアップデートされてもいいようにするための処理
|
63
|
+
def mark_visit(url):
|
64
|
+
db.query('''UPDATE url SET visited_at=CURRENT_TIMESTAMP
|
65
|
+
WHERE url=:url''',url=url)
|
66
|
+
"""
|
67
|
+
|
68
|
+
"""
|
52
69
|
#データベース上でのスクレイピングデータの取扱
|
53
70
|
def get_random_unvisited_link():
|
54
71
|
db.query('''SELECT * FROM url
|
@@ -65,5 +82,12 @@
|
|
65
82
|
t += 1
|
66
83
|
print(t,"new_links_found")
|
67
84
|
|
85
|
+
"""
|
68
86
|
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
69
93
|
```
|