Просит запрос информации библиотеки ползет IMDb
- Запрос вариант
ГЭТ - заголовок запроса User-Agent Cookies
Запросы на импорт импорта повторно четкости get_page (URL): ответ = запросы. получить (URL) обратный ответ Защиту parse_index (HTML): movie_list = re.findall ( ' .?.?.? <DIV класс = "пункт"> * <эм класс = ""> (*) </ EM> * < .? A HREF = "(. *)"> * <пролет класс = "название"> </ SPAN> *导演(*.?):.?主演(*.?): <бр (*.?) > (. *?) </ р>. *? <промежуток класс = "rating_num". *?> (. *?) </ SPAN>. *? <SPAN> (. *?)人评价</ SPAN> . * <SPAN класс = "Inq"> </ SPAN> (*.?) ' , HTML, re.S) вернуться movie_list четкости save_data (фильм): = year_type.strip ( ' \ п ' ) Данные = F '' ' =============================== фильм Ранжирование : {} топ фильмов URL: {} m_url название фильма: {имя} режиссерам: {} daoyan фильм в главной роли: {} актер Жанр: {} year_type рейтинги фильмов: {точка} обзор фильма: {совершить} фильма: { } убывание =============================== \ n- '' ' Print (Data) с Open ( ' douban_top250.txt ' , ' ' , кодирование = ' UTF - 8. ' ) AS F: f.write (данные) печать (е ' 电影: {имя}写入成功... ' ) , если __name__ == ' __main__ ' : Num = 0 для линии в диапазоне ( 10 ): URL = F ' https: // movie.douban.com/top250?start={num}&filter= ' Num + = 25 печать (URL) index_res = get_page (URL) movie_list = parse_index (index_res.text) для фильма в movie_list: save_data (фильм)
2. Зачем использовать селен?
Преимущества:
- JS выполнение кода
- нет необходимости анализировать сложные процессы коммуникации
- сделать всплывающие окна, раскрывающиеся и другие операции на браузере
- ***** получить динамические данные
- *** треснуть аутентификации входа в систему
Недостатки:
- низкая эффективность
3, установка и использование
1. Установка библиотека запрос селена:
PIP3 установка селена
2. Вы должны установить браузер
, «Google» или Firefox
3. Установите драйвер браузера
http://npm.taobao.org/mirrors/chromedriver/2.38/
Windows:
Скачать win32 диск
Селен библиотека запрос ползет процесс сетевой Jingdong
с селеном импорта WebDriver от импорта selenium.webdriver.common.by По из selenium.webdriver.common.keys импорта ключей от selenium.webdriver.support импорта expected_conditions как EC от selenium.webdriver.support.wait импорта WebDriverWait импорта время временного импорта драйвера = webdriver.Chrome (г ' C: \ Users \ HP \ Desktop \ chromedriver.exe ' ) попробуйте : драйвер. получить ( ' https://www.jd.com/ ' ) ждать = WebDriverWait (водитель, 10 ) input_tag = wait.until (EC.presence_of_element_located ( (By.ID, ' ключ ' ) )) time.sleep ( 5 ) input_tag.send_keys ( ' 公仔' ) input_tag.send_keys (Keys.ENTER) time.sleep ( 20 ) , наконец , : driver.close ()
Запрос селена Войти Baidu библиотеки рептилий
с селеном импортом WebDriver из selenium.webdriver.common.keys импорт Ключей время импорта время импорта драйвер = webdriver.Chrome (г ' C: \ Users \ HP \ Desktop \ chromedriver.exe ' ) попробуйте : driver.implicitly_wait ( 10 ) драйвера. получают ( ' https://www.baidu.com/ ' ) time.sleep ( 5 ) login_link = driver.find_element_by_link_text ( ' 登录' ) login_link.click () time.sleep ( 1 ) 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 ( ' 1847702753 @ QQ. ком ' ) # 4 , find_element_by_name PWD = driver.find_element_by_name ( ' пароль ' ) pwd.send_keys ( ' ***** ') Представить = driver.find_element_by_id ( ' TANGRAM__PSP_10__submit ' ) submit.click () login_link = driver.find_element_by_partial_link_text ( ' 登' ) login_link.click () login2_link = driver.find_element_by_css_selector ( ' .tang пасс footerBarULogin ' ) login2_link.click ( ) DIV = driver.find_elements_by_tag_name ( ' DIV ' ) печати (дел) time.sleep ( 20 ) , наконец : driver.close ()