РЕДАКТИРОВАНИЕ >>>>>
Я пишу некоторый код, который возвращает два выхода, но появляется ошибка.
В чем основная проблема моего кода?
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import os
import sys
import codecs
from urllib.request import urlopen
import pymysql
import mysql.connector
for i in range(1): #electronic
my_url = "https://www.xxxxx.com/mobile_phones/?facet_is_mpg_child=0&viewType=gridView&page="
uClient = uReq(my_url + str(i))
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
containers = page_soup.findAll("div" , {"class" : "sku -gallery" })
for container in containers:
name = container.img["alt"]
title_container = container.findAll("span", {"class" : "brand"})
Brand = title_container[0].text
price = container.findAll("span",{"class" : "price"} )
price_one = price[0].text.strip()
price_old = container.findAll("span",{"class" : "price -old "})
price_two = '0'
if len(price_old) > 0:
price_two = price_old[0].text.strip()
rank = container.findAll("span",{"class" : "rating-aggregate"})
ranking = 'N/A'
if len(rank) > 0:
ranking = rank[0].text.strip()
conn = pymysql.connect(host="localhost",user="root",passwd="",db="prod")
x = conn.cursor()
#name1 = name()
#brand1 = Brand()
#price_one1 = price_one1()
#price_two1= price_one1()
#rank1 = rank()
x.execute("INSERT INTO list (productname,brand,price1,price2,rank) VALUES (%s,%s,%s,%s.%s)" , (name,Brand,price_one,price_two,ranking))
conn.commit()
conn.close()
C: \ Users \ хххх \ AppData \ Local \ Programs \ Python \ Python35 \ python.exe
C: /Users/xxxx/.PyCharm2018.2/config/scratches/bd.py Traceback (большинство
последний звонок последний): File
«C: /Users/xxxx/.PyCharm2018.2/config/scratches/bd.py», строка 54, в
x.execute («INSERT INTO list (название продукта, бренд, цена1, цена2, ранг) VALUES (% s,% s,% s,% s.% s)», (имя, бренд, price_one, price_two, рейтинг))
файл
"C: \ Users \ хххх \ AppData \ Local \ Programs \ Python \ Python35 \ Lib \ сайт-пакеты \ pymysql \ cursors.py",
строка 170, в исполнении
result = self._query (query) Файл "C: \ Users \ xxxx \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pymysql \ cursors.py",
строка 328, в _query
conn.query (q) Файл "C: \ Users \ xxxx \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pymysql \ connections.py",
строка 516, в запросе
Файл self._affered_rows = self._read_query_result (небуферизованный = небуферизованный)
"C: \ Users \ хххх \ AppData \ Local \ Programs \ Python \ Python35 \ Lib \ сайт-пакеты \ pymysql \ connections.py",
строка 727, в _read_query_result
Файл result.read () "C: \ Users \ xxxx \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pymysql \ connections.py",
строка 1066, в чтении
first_packet = self.connection._read_packet () Файл "C: \ Users \ xxxx \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pymysql \ connections.py",
строка 683, в _read_packet
packet.check_error () Файл "C: \ Users \ xxxx \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pymysql \ protocol.py",
строка 220, в check_error
err.raise_mysql_exception (self._data) Файл "C: \ Users \ xxxx \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ pymysql \ err.py",
строка 109, в Raise_mysql_exception
поднять errorclass (errno, errval) pymysql.err.ProgrammingError: (1064, «У вас ошибка в синтаксисе SQL; обратитесь к руководству, которое
соответствует вашей версии сервера MariaDB для правильного использования синтаксиса
около '.'2') 'в строке 1 ")
Процесс завершен с кодом выхода 1