Библиотека day02-селен

Вчера Обзор:
Во- первых, основные принципы рептилий
- пресмыкающиеся весь процесс
1. Отправить запрос
2 принимает данные ответа
3. синтаксического анализа и извлечения ценных данных
4. Сохраните данные
два, Resquests запрашивают библиотеки
-get
URL
заголовка
Cookies
-post
URL
заголовок
Cookies
данных
третьих, ползание Xiaohua чистая
страница Подробная информация Разрешающая экстракте страница
2. извлечение URLпомощью видеотрансляции деталей страницы
3. получить двоичный поток локального видео записано
четыре автоматического входаGitHub
1. анализ информационного запроса заголовка и тела запроса
- имя пользователя
- пароль
Addr
- ассорти
2.token
- на разборе экстракта Войти страницы
3. session_url отправить запрос
-header:
агент пользователя

-cookies:
Cookies Сайт Войти страница

-data:
форма-данные координат,
сегодня содержание:
а, запросы ползет IMDb запроса информации базы данных
- запрошенный URL
https://movie.douban.com / TOP250

- запрос метода
GET

- запрос заголовок
агента пользователя
Куки
два, селеном библиотека запроса
1. Что такое селен
в первый автоматизированный инструмент тестирования, является принцип вождения в браузере , чтобы выполнить некоторые самоопределяемые операции.
Рептилия, по сути аналог браузера, так что вы можете использовать его , чтобы сделать рептилии.
2. Почему селеном
преимущества:
- JS выполнение кода
- нет необходимости анализировать сложный процесс коммуникации
- сделать поп - музыку, выпадающий и другие операции в браузер
- ***** могут получить динамические данные
- *** Трещины могут войти аутентификации
недостатки;
- низкая эффективность
3. установка и использование
1. установить библиотеку запроса селена:
PIP3 установить селен
2. Вы должны установить браузер:
Google, Firefox
http://npm.taobao.org/mirrors/chromedriver/2.38/
3. установить драйвер браузера
# ползет фильм
«» ' 
Ползучая IMDb сообщения:
название фильма, кино URL - адрес
режиссер, кино в главной роли
фильм Год, Жанр
оценку фильма, фильм обзоров
фильмов Введение
1. Анализ всех URL домашней страницы
на первой странице:
https://movie.douban.com ? / top250 начать = 0 & фильтр =
вторая страница:
https://movie.douban.com/top250?start=25&filter=
'' '
запросы Import
Импорт Re
# гусеничный трилогия
# 1 посылает запрос
четкости get_page (URL):
= requests.get ответ (URL)
#Print (response.text)
возвращает ответ

# 2. проанализировать данные
DEF parse_index (HTML):
'' '
рейтинга фильмов, фильмов URL, название фильма, режиссер, кинозвезды,
фильм Год / тип десятки фильмов, обзоры фильмов, кино Введение
<DIV класс = "пункт">. * <? эм класс = ""> (*?) . </ EM>. *? <a href=".*?">. *? <SPAN класс = "название" (. *)> </ SPAN>
*导演:.?主演(*.?): <br> * </ р> * <пролет класс = "rating_num" * (*.?).?.?.? > (. *?) </ SPAN>. *? <SPAN> (. *?)人评价</ SPAN>
. *? <SPAN класс = "Inq"> (. *?) </ SPAN>
<DIV класс = "пункт">. * <? эм класс = ""> (. *?) </ EM>. *? <a href=".*?">. *? <SPAN класс = "название"> (. *) </ SPAN> *导演:.? (*)主演:.?.?.?.? (*) <br> * </ р> * <. пролет класс = "rating_num" *?> (. *?) </ SPAN>. *? <SPAN> (. *?)人评价</ SPAN>. *? <SPAN класс = "Inq"> (. *?) </ SPAN>
''»
movie_list = re.findall ( '<DIV класс = "пункт">. * <? эм класс = ""> (. *?) </ EM>. *? <a href="(.*?)">. * <пролет класс = "название"> </ SPAN> *导演(*.?):.?主演(*.?): <br> </ р> * (*.?) (*.?). ? <промежуток класс = "rating_num". *?> (. *?) </ SPAN>. *? <SPAN> (. *?)人评价</ SPAN>. *? <промежуток класс = "Inq"> ( . *?) </ SPAN>»,
HTML,
re.S)
возвращение movie_list

# 3. Сохраните данные
DEF save_data (видео):
рейтинги # кино, кино URL, название фильма, режиссер, фильм с участием
# Movie Год / тип оценки кино, обзоры фильмов, фильм синопсис
сверху, m_url, имя, daoyan, актер, year_type, точка, фиксации, убывание = фильм
о данных = F '' '
=========== ========== приветственное смотреть
фильмы рейтинг: { топ}
кино URL: {m_url}
название фильма: {имя}
режиссерам: {daoyan}
фильма в главной роли: {актер}
Тип Год: {year_type}
рейтинги фильмов: {точка}
обзор фильма: {совершить}
фильма: {убывание}
Добро пожаловать в следующий раз ========== =========
'' '
Print (Data)

с открытым (' douban_top250.text '' A 'кодирование =' UTF-. 8 ' ) AS F:
f.write (Data)

Print ( 'фильм: {имя} успешно написана ...' F)

ЕСЛИ __name__ == '__main__':
NUM = 0
для линии диапазона в (10):
URL = F ' https://movie.douban.com/top250?start={num}&filter= '
NUM = + 25
Print (URL)

#. 1. к каждому дому передает запрос
index_res в get_page = (URL)

# 2. аналитическую домашнюю страницу для информации фильма
= parse_index movie_list (index_res.text)

для фильма в movie_list:
#Print (Видео)
# 3.Ведение данных
save_data (Видео)

#selenium основного использования библиотеки
Импорт WebDriver Селен из 
из selenium.webdriver.common.by импорта по # найти, каким образом, By.ID, By.CSS_SELECTOR
из selenium.webdriver.common.keys операции импорта ключей # клавиатура
от selenium.webdriver.support импорта expected_conditions , как EC # и вместе со следующим WebDriverWait
из selenium.webdriver.support.wait импорта WebDriverWait # ждать загрузки страницы некоторые элементы
Импорт времени
# способ: при движении открытия браузера
драйвер = webdriver.Chrome (r'chromedriver.exe путь , где «)

# способа: вождения в интерпретатор питона webdriver.exe каталога установки / Сценарий папка
#python каталога установки интерпретатора / Scripts настроить переменные окружения
#python интерпретатора каталога установки, настройки переменных окружения ,
пробный:
driver.get ( «https://www.jd.com/»)

# получить явное ожидание 10 секунд объектов
# может ждать 10 секунд , чтобы загрузить этикетку
ждания = WebDriverWait (Driver, 10)

# ключа , чтобы найти идентификатор элемента
= Wait.until input_tag (EC.presence_of_element_located (
(By.ID, 'Key')
))
в time.sleep (. 5)

# Введите имя входного продукта окно
input_tag.send_keys ( 'кукла')

# Нажмите Enter
input_tag .send_keys (Keys.ENTER)

time.sleep (20)
финально:
driver.close ()


# селектор
Время импорта 
из импорта по selenium.webdriver.common.by
из selenium.webdriver.common.keys Импорт ключей
от selenium.webdriver.support.wait Импорт WebDriverWait
из selenium.webdriver.support Импорт expected_conditions AS EC
от WebDriver Селен Import
Driver = в WebDriver. Хром (r'chromedriver.exe , где путь «)

попробовать:

# неявное ожидание: вам нужно позвонить перед GET
# подождите 10 секунд , чтобы загрузить любой элемент
driver.implicitly_wait (10)

driver.get (» https://www.baidu. COM / ')

# явное ожидание: вызов нужен после того, как GET
. в time.sleep (5)

' ''
=============== всех методы ========== =========
Элемент , чтобы найти ярлык
элементов найти все метки
' „“
# автоматический старт Войти Baidu
# 1, # find_element_by_link_text通过链接文本去找
login_link = driver.find_element_by_link_text ( '登录')
login_link.click () #点击登录

time.sleep (1)

# 2, # find_element_by_id通过ID去找
user_login = driver.find_element_by_id (» TANGRAM__PSP_10__footerULoginBtn ')
user_login.click ()

time.sleep (1)

# 3, find_element_by_class_name
пользователь = driver.find_element_by_class_name (' пропускания ввода текста-имя_пользователя ')
user.send_keys (' ***** ')

# 4, find_element_by_name
PWD = driver.find_element_by_name ( 'пароль')
pwd.send_keys ( '*****')

представить = driver.find_element_by_id ( 'TANGRAM__PSP_10__submit')
представить.нажмите ()
# конец

. 5 #, find_element_by_partial_link_text
# локальный поиск текстовой ссылки
login_link = driver.find_element_by_partial_link_text ( 'регистрация')
login_link.click ()

. # 6, find_element_by_css_selector
# найти элементы на основе атрибутов селекторов
# :. Class
# #: ID
login2_link = driver.find_element_by_css_selector ( ' Pass-footerBarULogin-.tang ')
login2_link.click ()

# 7, find_element_by_tag_name
деление = driver.find_elements_by_tag_name (' DIV «)
Печать (дела)


time.sleep (20)

финально:
# закрыть браузер операционного высвобождают ресурсы системы
driver.close ()


рекомендация

отwww.cnblogs.com/2328322824chx/p/11121314.html
рекомендация