Проблема при отображении URL с использованием селена и запросов на удаление - PullRequest
0 голосов
/ 08 ноября 2019

Я разрабатываю скребок. Поскольку я пытаюсь получить доступ к другим страницам, чтобы удалить их, мне ТОЛЬКО иногда удается это сделать ... Я думаю, что это происходит из-за проблем с использованием или селена, или запросов (или обоих), потому что я иногда могу получить удаленный контент, и я уверен, чтосам по себе код (функции ...) «правильный».

Я хочу показать все коды (как они длинные), но сделал его фрагмент, чтобы вы понимали логику

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

class Webpage_validity:
  """Class to check if a website is indeed reachable
   for further scrapping
  """
  def __init__(self): #ensures  inheritability 
    pass

  @staticmethod
  def assessing_response_status(url_to_check, num_retries = 3, retry = 1):
    #check url using requests and return url checked if good

class Dynamic_response(Webdriver_preferences, Webpage_validity):
  """Class to generate dynamic content of a page by scrolling down
  """
  def __init__(self):
    Webdriver_preferences.__init__(self) #browser preferences
    Webpage_validity.__init__(self) 

  def scrolling_down(self, url_to_render):
    #code to scroll down to load dynamic content using url checked before
    #return response

class Scrapping(Dynamic_response):

  def __init__(self):
    super().__init__()

  def grab_url_links(self):
    #use the response from scrolling down, scrap url of href and return a list of urls for further use

  def get_elements(self):
    #by inheritage, re-use scrolling down (and hence, webpage validity to check status) 
    #to open all url from list of grabed url from "grab_url_links" and scrap more stuff

Когда он работает, он фактически открывает URL, потому что тогда я вижу, что интересующее содержимое удалено. Но в большинстве случаев при выполнении URL-адресов с функцией get_elements (self) я получаю:

InvalidArgumentException: неверный аргумент: 'url' должен быть строкой
(Информация о сеансе: headless chrome = 78.0.3904.97)

И я уверен, что я передаю строку как URL для открытия (поскольку отображаются все URL-адреса, полученные на первом месте), и я могу открыть этиURL, а также вручную. Есть ли проблема с какой-то ссылкой, так что селен и / или запросы не могут быть обработаны, связать кодировку?

Последнее: это какая-то ссылка Reddit из тем

Спасибо!

edit: я использую chromdriver в качестве webdriver

...