简体   繁体   中英

What is the correct way to call URL in python

I have csv file and passing csv data has parameter to python code. In csv file has URL data. What is the correct way to call URL in python. Getting error Cannot navigate to invalid URL

CSV file

ID,category,link
sports_shoes,sports-shoes,https://www.flipkart.com/mens-footwear/sports-shoes/pr?otracker=categorytree&page=1&sid=osp%2Ccil%2C1cu

Code:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
import time
import csv

with open('mydata.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        #print(row['ID'] ,row['category'],row['link'])
        url = row['link']
        print(url)
        chrome_path = r"C:\Users\Venkatesh\AppData\Local\Programs\Python\Python35\chromedriver.exe"
        driver = webdriver.Chrome(chrome_path)
        RegionIDArray = url
        data_list=[]
        data = []
        mobile_details_data = []
        delay = 30 # seconds
        for reg in RegionIDArray:
            driver.get(reg)
driver.quit()

Error:

Traceback (most recent call last):
  File ".\input_file.py", line 24, in <module>
    driver.get(reg)
  File "C:\Users\Venkatesh\AppData\Local\Programs\Python\Python35\Lib\site-packages\selenium\webdriver\remote\webdriver.
py", line 250, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Users\Venkatesh\AppData\Local\Programs\Python\Python35\Lib\site-packages\selenium\webdriver\remote\webdriver.
py", line 238, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Venkatesh\AppData\Local\Programs\Python\Python35\Lib\site-packages\selenium\webdriver\remote\errorhandl
er.py", line 193, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: unhandled inspector error: {"code":-32000,"messag
e":"Cannot navigate to invalid URL"}
  (Session info: chrome=57.0.2987.133)
  (Driver info: chromedriver=2.28.455520 (cc17746adff54984afff480136733114c6b3704b),platform=Windows NT 6.2.9200 x86_64)

Your url variable contains the link which you want to access. You code is looping through a string and making a driver.get() call on each character. Which basically explains the error.

Since, you are already looping through your data in for row in reader: , you don't need the inner loop. Simply use driver.get(url) .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM