Я очищаю некоторые сайты, используя selenium firefox-web-driver. Первые 7-8 ссылок правильно получают соскоблил. после этого я получаю TypeError.
В моем коде веб-драйвер Firefox создается и удаляется (driver.quit()) после анализа каждой ссылки.
уже пробовал лить его на размешивание
Traceback (most recent call last):
File "/home/umar/PycharmProjects/ShopToBDScraper/run_scraper.py", line 21, in <module>
main()
File "/home/umar/PycharmProjects/ShopToBDScraper/run_scraper.py", line 13, in main
scrape_data(line,i)
File "/home/umar/PycharmProjects/ShopToBDScraper/scraper/bs_scraper.py", line 381, in scrape_data
cdn = str(math.ceil(float(cdn + 8) + ((float(cdn + 8) * 15) / 100)))
TypeError: must be str, not int
отредактировал его. Это нормально?
Проблема может заключаться в том, что значение оригинальный для cdn
является str
, а не int
, к которому можно добавить 8
. Попытка преобразовать окончательный результат вычисления в str
не является ни полезной, ни необходимой.
тогда почему он не выдает ошибки для первых 6-7 ссылок?
Я предполагаю, что ваша ошибка связана с тем, что 8 является целым числом, а не строкой, потому что cdn - это строка. пытаться:
cdn = str(math.ceil((float(cdn) + 8) + (((float(cdn) + 8) * 15) / 100)))
но первые 6-7 ссылок идут нормально.
Если вы переопределяете cdn как str после выполнения этих первых 6-7 ссылок, это приведет к ошибке, потому что вы не можете конкатенировать целое число + str. Прямо сейчас у вас есть float (cdn + 8), который объединит внутреннюю часть, а затем изменит ответ на float. Итак, если вы делаете str + int, вы получите ошибку типа
cdn не переопределяется. Он использует один и тот же cdn для всех ссылок. Тем не менее, я применил ваше решение, и теперь оно работает нормально. Спасибо! Сам должен был заметить.
вы переопределяете cdn, потому что вы устанавливаете равным строке в этой строке кода cdn = str(math.ceil(.....) после некоторой итерации. Когда это строка, она не может конкатенировать с этим целым числом. Я не могу сказать вам, почему он работал, и внезапно остановился, не увидев полного кода, но рад, что устранил проблему для вас и счастливого парсинга!
Пожалуйста, отредактируйте свой вопрос, чтобы предоставить полную трассировку ошибки, а также фрагмент кода, в котором возникает ваша ошибка.