#python #authentication #web-scraping #cookies #python-requests
#python #аутентификация #веб-очистка #файлы cookie #python-запросы
Вопрос:
У меня есть веб-страница, на которой мне нужно войти в web scrape product price
Итак, у меня есть класс с моим методом синтаксического анализа, который я вызываю после успешного входа в систему.
Но я получаю только страницу без цены, поэтому я получаю объект NoneType, на который нельзя подписаться
class Parser(object):
ses = requests.Session()
def parse(self, urls):
url = urls[1]
try:
r = self.ses.get(url)
sleep(3)
if r.status_code == 200:
Myhtml = r.text
soup = BeautifulSoup(Myhtml, 'html.parser')
print('Get Soup..')
price = soup.find('span', attrs={'itemprop': 'price'})
availability = soup.select_one('div.availability > span')['class'][0]
#Checking Conditions
data = [urls[0], price_text, availability_text]
return data
else:
print(r.status_code.text)
except TypeError as e:
print(e)
return []
except IndexError as e:
print(e)
return []
except AttributeError as e:
print(e)
return []
except Exception as e:
print(str(e))
return []
if __name__ == "__main__":
print('Starting..')
browser = webdriver.Chrome('C:\chromedriver.exe')
browser.get('https://www.acihellas.gr/login')
#LOGIN PROCESS Passing Username and Password into form
s = requests.Session()
parser = Parser()
parser.ses = s
browser.quit()
for link in web_links:
parser.parse(link)
#export to csv
Я не знаю, является ли это полезной информацией, но в момент
r = self.ses.get(url)
у ses есть два файла cookie, после этого у r есть один файл cookie
Что я здесь делаю не так? Я попробовал способ
cookies = browser.get_cookies()
for cookie in cookies:
s.cookies.set(cookie['name'], cookie['value'])
Но опять тот же результат
Как сохранить файл cookie аутентификации для каждого URL, который я хочу проанализировать?
Комментарии:
1. Не могли бы вы опубликовать URL-адрес
2. Это URL -адрес входа acihellas.gr/login
3. итак, ваша проблема в том, что вы не можете успешно войти в систему?
4. Проблема в том, что я успешно вхожу в систему, но в запросе url r = self.ses.get(url) использует не файл cookie аутентифицированного входа, а исходный файл cookie, поэтому в результате я ничего не получаю