Фон
Я создавал веб-скребок с Python 3.8 и Selenium. В обеих моих системах (Macbook Pro 2012 года и новая довольно мощная сборка P C) он очистит три веб-сайта с аналогичной структурой примерно за 2 часа. Для каждого сайта я собираю данные из отдельных списков продуктов с помощью Firefox Webdriver. Каждое объявление с этих сайтов занимает в среднем около 3-4 секунд, никогда не превышая 5 секунд.
Проблема
Недавно я отправил его своему партнеру, чтобы он мог проверить его в своей системе ( не уверен на точной модели, но новый ноутбук среднего уровня). Для первых двух веб-сайтов он работает плавно и очень похоже на мой P C. Однако на третьем веб-сайте около 5% объявлений застревают на срок от 10 секунд до неопределенного времени. Похоже, что нас задерживают в следующих двух разделах кода:
try:
item = browser.find_element_by_xpath("//div[@class='outer class']/div[@class='inner class']").text
except NoSuchElementException:
item = ""
и следующий, который входит в oop всех URL-адресов, которые нужно посетить:
try:
browser.get(url)
except TimeoutException:
continue
Что я рассмотрел
Я новичок во всем этом, поэтому я не уверен, каковы возможные ошибки. Вот что я рассмотрел:
Его ноутбук не на высоте: Кажется, проблема не в этом. Это определенно улучшение по сравнению с моим Macbook Pro, который отлично работает. Кроме того, 2 из 3 веб-сайтов у него работают идеально.
Его inte rnet соединение не на должном уровне: Может быть проблемой, но достаточно ли сравнения результатов Ookla, чтобы определить это? И почему это может иметь значение только на одном веб-сайте?
Его браузер / python устарел: Я проверил. Это не так.
У него слишком много процессов, запущенных на его P C: Мы сделали сброс и закрыли все ненужные программы. Похоже, это не имело значения.
Мой код ниже среднего: Это вполне возможно / вероятно.
Проблемы с Captcha: На моем сторона, я не видел капчи. Но поскольку он зацикливается на 1) загрузке следующего URL-адреса или 2) доступе к первому биту данных с этого URL-адреса, это кажется возможным.
Любая помощь приветствуется!