質問するログイン新規登録

質問編集履歴

3

ご指摘を頂きまして変更致しました。

2020/09/05 14:49

投稿

jury_new
jury_new

スコア31

title CHANGED
@@ -1,1 +1,1 @@
1
- (sqlite3.InterfaceError) Error binding parameter 0 - probably unsuppoを解決したいです。
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
- url text PRIMARY KEY)''')
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

エラーについて更新いたしました。

2020/09/05 14:49

投稿

jury_new
jury_new

スコア31

title CHANGED
@@ -1,1 +1,1 @@
1
- (sqlite3.OperationalError) near "(": syntax error [SQL: INSERT INTO (url,created_at) を解決したいです。
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.OperationalError: (sqlite3.OperationalError) near "(": syntax error
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を格納することです。

2020/09/05 14:39

投稿

jury_new
jury_new

スコア31

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
- visited_at datetime NULL)''')
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 (url,created_at)
47
+ db.query('''INSERT INTO url
49
- VALUES (:url,CURRENT_TIMESTAMP)''',url=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
  ```