Здравствуйте, пытаюсь написать самую первую программу на Python.
Использую Python 3.9 и PyCharm 2020.3.2 (Community Edition) в Windows 8.1 .
Возникло два вопроса:
1. Хочу провести разбор своего фото-портфолио, состоящего из N страниц по 100 фото на каждой.
Затем data планируется разобрать, но проблема в том, что нормальное декодирование (decode ()) любой из страниц (?page=1 ?page=2 и т.д.) заканчивается на 21-м фото: если у фото 1-20 <img class="z_h_9d80b z_h_2f2f0", то у 21-100 <img class="z_h_9d80b" и картинки не отображаются (см. портфолио.jpg), хотя в исходной странице у всех фото портфолио class="z_h_9d80b z_h_2f2f0"
Дополнительно могу сказать, что сравнение декодированной страницы и сохранённой ("Save as") показывает существенные различия и помимо различий в классах изображений (см. сравнение.jpg, diff.zip )
Интересно, что если декодировать страницу с помощью BeautifulSoup, получается та же картина - представление 21-го изображения искажается.
Вопрос: чем может быть вызвано такое поведение decode() и BeautifulSoup и как правильно перекодировать эти страницы?
2. На самом деле гораздо больше информации я мог бы извлечь, если бы зашёл в свой эккаунт, но для этого нужно ввести имя/пароль и captcha. Мне всё понятно, кроме captcha
Прошу подсказать, как выбрать checkbox и поставить галочку ! (см. captcha.jpg )
Использую Python 3.9 и PyCharm 2020.3.2 (Community Edition) в Windows 8.1 .
beautifulsoup4 4.9.3
certifi 2020.12.5
chardet 4.0.0
idna 2.10
lxml 4.6.2
pip 20.3.3
requests 2.25.1
selenium 3.141.0
setuptools 49.2.1
soupsieve 2.1
urllib3 1.26.2
certifi 2020.12.5
chardet 4.0.0
idna 2.10
lxml 4.6.2
pip 20.3.3
requests 2.25.1
selenium 3.141.0
setuptools 49.2.1
soupsieve 2.1
urllib3 1.26.2
1. Хочу провести разбор своего фото-портфолио, состоящего из N страниц по 100 фото на каждой.
Python:
URL_ADDR = '''https://www.shutterstock.com/ru/g/Ivanov+Oleg'''
# Открываем страницу с заданным адресом URL_ADDR
page = urlopen(URL_ADDR)
# Считываем и перекодируем данные с открытой страницы
data = page.read().decode()
# Печатаем текст страницы в вывод
print(data)
Затем data планируется разобрать, но проблема в том, что нормальное декодирование (decode ()) любой из страниц (?page=1 ?page=2 и т.д.) заканчивается на 21-м фото: если у фото 1-20 <img class="z_h_9d80b z_h_2f2f0", то у 21-100 <img class="z_h_9d80b" и картинки не отображаются (см. портфолио.jpg), хотя в исходной странице у всех фото портфолио class="z_h_9d80b z_h_2f2f0"
Дополнительно могу сказать, что сравнение декодированной страницы и сохранённой ("Save as") показывает существенные различия и помимо различий в классах изображений (см. сравнение.jpg, diff.zip )
Интересно, что если декодировать страницу с помощью BeautifulSoup, получается та же картина - представление 21-го изображения искажается.
Python:
import requests
from bs4 import BeautifulSoup
. . .
url_get = requests.get(url)
soup = BeautifulSoup(url_get.content, 'lxml')
print (soup)
Вопрос: чем может быть вызвано такое поведение decode() и BeautifulSoup и как правильно перекодировать эти страницы?
2. На самом деле гораздо больше информации я мог бы извлечь, если бы зашёл в свой эккаунт, но для этого нужно ввести имя/пароль и captcha. Мне всё понятно, кроме captcha
Python:
from urllib.request import urlopen
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
. . .
driver = webdriver.Chrome()
driver.get(URL_ADDR)
elem_name = driver.find_element_by_name("username")
elem_name.send_keys("user_х@gmail.com")
elem_pass = driver.find_element_by_name("password")
elem_pass.send_keys("qwerty")
# это не работает - elem_capt = driver.find_element_by_class_name("recaptcha-checkbox-checkmark")
# это не работает - elem_capt = driver.find_element_by_class_name("rc-anchor-center-item rc-anchor-checkbox-holder")
elem_capt = driver.find_elements_by_class_name("recaptcha-checkbox goog-inline-block recaptcha-checkbox-unchecked rc-anchor-checkbox")
#дальше непонятно как выбрать checkbox и поставить галочку !
elem_name.send_keys(Keys.RETURN)
. . .
Прошу подсказать, как выбрать checkbox и поставить галочку ! (см. captcha.jpg )
Вложения
Последнее редактирование: