У меня есть код, который удаляет данные с определенного веб-сайта https://vancouver.craigslist.org/search/ela
. Моя проблема в том, что когда я выполняю свой код, он выдает ошибку 'list' object has no attribute 'get_attribute'
в строке asdf = images.get_attribute("src")
. Я использую библиотеку селена в очистке данных. Я хочу вставить URL-адрес изображения из моей таблицы с именем images
, но не могу. Что не так с моим кодом? Я еще не знаком с Python, поэтому я задаю вопросы. Большое спасибо за внимание.
Текущий код
x = driver.find_elements_by_class_name('hdrlnk')
y = driver.find_elements_by_xpath('//p[@class="result-info"]/span[@class="result-meta"]//span[@class="result-price"]')
images = driver.find_elements_by_xpath('//*[@id="sortable-results"]/ul/li/a/img')
for img in images:
print(img.get_attribute('src'))
for i in range(len(x)):
asdf = images.get_attribute("src")
prod = (x[i].text)
price = (y[i].text)
image = asdf
sql = """INSERT INTO products (name,price,image) VALUES (%s,%s,%s)"""
mycursor.execute(sql,(prod,price,image))
mydb.commit()
Когда я комментирую эту строку
for img in images:
print(img.get_attribute('src'))
и удаляю переменную asdf
и image
, ямогу вставить данные, а также, когда я комментирую эту строку кода и сохраняю распечатку для изображений,
#for i in range(len(x)):
#asdf = images.get_attribute("src")
#prod = (x[i].text)
#price = (y[i].text)
#image = asdf
#sql = """INSERT INTO products (name,price,image) VALUES (%s,%s,%s)"""
#mycursor.execute(sql,(prod,price,image))
#mydb.commit()
Я получил желаемый результат, подобный этому
https://images.craigslist.org/00z0z_4cqgwC5PIXs_300x300.jpg
https://images.craigslist.org/00J0J_f6AnAonGjXd_300x300.jpg
https://images.craigslist.org/00606_mtKNjKREOO_300x300.jpg
https://images.craigslist.org/00U0U_l5t0QnjZEPt_300x300.jpg
https://images.craigslist.org/00505_gIXt1C8aeqk_300x300.jpg
https://images.craigslist.org/00N0N_6P1GmSiL2vI_300x300.jpg
Пример данных для переменной x
и y
в цикле i
:
x = Spigen Magnetic Car Phone Mount
y= $20
Что мне нужно сделать, чтобы вставить URL-адрес изображения с названием продукта и изображения в одну строку? TIA.
РЕДАКТИРОВАТЬ. Я попытался ответить @ terahertz и переписал мой код следующим образом
x = driver.find_elements_by_class_name('hdrlnk')
y = driver.find_elements_by_xpath('//p[@class="result-info"]/span[@class="result-meta"]//span[@class="result-price"]')
images = driver.find_elements_by_xpath('//*[@id="sortable-results"]/ul/li/a/img')
for img in images:
# print(img.get_attribute('src'))
for i in range(len(x)):
asdf = img.get_attribute("src")
prod = (x[i].text)
price = (y[i].text)
image = asdf
sql = """INSERT INTO products (name,price,image) VALUES (%s,%s,%s)"""
mycursor.execute(sql,(prod,price,image))
mydb.commit()
Текущие данные БД
+-----+------------------------------------------------------------------------+--------+-------------------------------------------------------------+
| id | name | price | image |
+-----+------------------------------------------------------------------------+--------+-------------------------------------------------------------+
| 1 | Spigen Magnetic Car Phone Mount | $20 | https://images.craigslist.org/00i0i_7PvHxDMvR2o_300x300.jpg |
| 2 | Netgear Nighthawk x6 r8000 wireless router | $120 | https://images.craigslist.org/00i0i_7PvHxDMvR2o_300x300.jpg |
| 3 | iPod Touch 8gb 2nd generation - Loaded with Classic Rock | $60 | https://images.craigslist.org/00i0i_7PvHxDMvR2o_300x300.jpg |
| 4 | 3 plug 3.1A fast USB wallplugs | $10 | https://images.craigslist.org/00i0i_7PvHxDMvR2o_300x300.jpg |
| 5 | Audio and Video Cables | $3 | https://images.craigslist.org/00i0i_7PvHxDMvR2o_300x300.jpg |
| 6 | Like New Samsung 50" HD TV ForSale | $400 | https://images.craigslist.org/00i0i_7PvHxDMvR2o_300x300.jpg |
| 7 | SONY Alarm Clock | $20 | https://images.craigslist.org/00i0i_7PvHxDMvR2o_300x300.jpg |
| 8 | Bowers & Wilkins P7 Wireless MINT | $450 | https://images.craigslist.org/00i0i_7PvHxDMvR2o_300x300.jpg |
+-----+------------------------------------------------------------------------+--------+-------------------------------------------------------------+
Теперь я могу вставить в свою базу данных, НО проблема в том, что столбец image
имеетто же значение с другим. Это как только один вставленный URL-адрес изображения. И когда я зашел по ссылке, название продукта и изображение не совпадают.