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