3

I have the following code:

Linksml=["https://articulo.mercadolibre.cl/MLC-554702642-samsung-note-9-dual-sim-128gb-carcasas-y-caja-_JM",
"https://articulo.mercadolibre.cl/MLC-554718846-audifonos-hyperx-cloud-ps4-_JM",
"https://articulo.mercadolibre.cl/MLC-554753668-disco-duro-ssd-_JM",
"https://articulo.mercadolibre.cl/MLC-554695355-celuar-samsung-j6-duos-_JM"]

for x in range(len(Linksml)):
    page=requests.get(Linksml[x])  
    soup=BeautifulSoup(page.content,'html.parser')
    tags=soup.find('h1', class_='item-title__primary ')
    print(tags)

It works, but if I run it 10 times, it will show me the name of product 1 and 2 on 5 occasions, and on the remaining 5, it will show me "none". It is random with the 3 products, in one execution the product 1 can show name, in two later it can show "none". It is like this for the 3 products, I don't know what to do anymore. Please help me, Olympian gods.

Konrad Rudolph
  • 530,221
  • 131
  • 937
  • 1,214
Greenyuno
  • 29
  • 2
  • Have you tried printing the responses from your get-requests to check if there actually are any items with the class item-title__primary? – Metareven Nov 02 '20 at 12:51

1 Answers1

1

Actually, the first link is different from the rest, so I have removed it from the list. This code works for the other links. Try this:

from bs4 import BeautifulSoup
from selenium import webdriver
import time

Linksml=["https://articulo.mercadolibre.cl/MLC-554718846-audifonos-hyperx-cloud-ps4-_JM",
"https://articulo.mercadolibre.cl/MLC-554753668-disco-duro-ssd-_JM",
"https://articulo.mercadolibre.cl/MLC-554695355-celuar-samsung-j6-duos-_JM"]

driver = webdriver.Chrome()

for x in range(len(Linksml)):
    driver.get(Linksml[x])
    time.sleep(3)

    soup=BeautifulSoup(driver.page_source,'html.parser')
    tags=soup.find('h1', class_= 'item-title__primary')
    if tags: print(tags.text.strip())

driver.close()

Output:

Audifonos Hyperx Cloud Ps4
Disco Duro Ssd
Celuar Samsung J6+ Duos
Sushil
  • 5,440
  • 1
  • 8
  • 26