Повторение списка строк: сообщение об ошибке

#python

Вопрос:

У меня есть csv-файл, в котором есть один столбец, содержащий URL-адреса, я хочу открыть его, преобразовать в список и повторить что-то для каждого URL-адреса, но он выдает мне ошибки, в нем говорится, что URL-адрес не является строкой.

 import requests
from lxml import html, etree
from selenium.webdriver import Chrome, ChromeOptions
import random
import time
from datetime import datetime, timedelta
import csv
import pandas as pd

restaurant_urls_li = pd.read_csv(r"list_saved.csv")
restaurant_urls_li = restaurant_urls_li.iloc[:,-1:]
restaurant_urls_li = restaurant_urls_li.values.tolist()
print(restaurant_urls_li)

[['https://www.tripadvisor.com/Restaurant_Review-g187849-d13392251-Reviews-Kisen_Moscova-Milan_Lombardy.html'], ['https://www.tripadvisor.com/Restaurant_Review-g187849-d17805000-Reviews-Mabuhay_Restaurant-Milan_Lombardy.html'],['https://www.tripadvisor.com/Restaurant_Review-g187849-d13392251-Reviews-Kisen_Moscova-Milan_Lombardy.html'], ['https://www.tripadvisor.com/Restaurant_Review-g187849-d17805000-Reviews-Mabuhay_Restaurant-Milan_Lombardy.html'],['https://www.tripadvisor.com/Restaurant_Review-g187849-d13392251-Reviews-Kisen_Moscova-Milan_Lombardy.html'], ['https://www.tripadvisor.com/Restaurant_Review-g187849-d17805000-Reviews-Mabuhay_Restaurant-Milan_Lombardy.html']]

for restaurant_url in restaurant_urls_li[0:20]:
    print(restaurant_url)
    wd.get(restaurant_url)

 

Сообщение об ошибке:

 InvalidArgumentException                  Traceback (most recent call last)
<ipython-input-34-29d9690b9e31> in <module>()
      1 for restaurant_url in restaurant_urls_li[start:end]:
----> 2     wd.get(restaurant_url)
      3     tree = html.fromstring(wd.page_source)
      4     restaurant = tree.xpath('//div[contains(@id,"taplc_top_info")]')[0]
      5     try:

2 frames
/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243 
    244     def _value_or_default(self, obj, key, default):

InvalidArgumentException: Message: invalid argument: 'url' must be a string

 

Я не вижу, что не так

Комментарии:

1. Каждый restaurant_url из них представляет собой список с одной строкой в нем , а не строкой.

2. Это не строка, это список, содержащий строку

Ответ №1:

Поскольку каждый restaurant_url из них представляет собой список, содержащий одну строку, вы можете получить к нему доступ, просто обратившись к первому элементу этого списка.

 for restaurant_url in restaurant_urls_li[0:20]:
    wd.get(restaurant_url[0])