Python 은 Selenium 을 사용 하여 바 이 두 검색 을 자동 으로 진행 합 니 다.

우 리 는 오늘 초보 자 에 게 매우 적합 한 python 자동화 프로젝트 를 소개 합 니 다.프로젝트 는 작 지만 오장 이 모두 갖 추어 져 있 습 니 다.이것 은 웹 브 라 우 저 를 자동화 하 는 작은 응용 프로그램 입 니 다.브 라 우 저 를 열 고 바 이 두 웹 페이지 에 들 어가 키 워드 를 검색 하고 마지막 으로 검색 결 과 를 파일 에 저장 합 니 다.이 예 는 초보 자 들 이 Python 네트워크 자동 화 를 배 우 는 데 매우 적합 하 다.Selenium 을 어떻게 사용 하 는 지 알 수 있 을 뿐만 아니 라 아주 좋 은 작은 도구 도 알 수 있다.
물론 누군가가 웹 페이지 를 조작 한 후에 웹 페이지 의 관건 적 인 내용 을 저장 한 응용 을 일률적으로 인터넷 파충류 라 고 부른다.그래,네가 이렇게 내용 을 얻 으 려 면 네 마음대로 해라.하지만 나 는 그것 을 인터넷 로봇 이 라 고 부 르 고 싶다.
제 가 오늘 소개 한 프로젝트 는 Selenium 을 사용 합 니 다.Selenium 은 웹 브 라 우 저 자동 화 를 지원 하 는 일련의 도구 와 라 이브 러 리 의 종합 프로젝트 입 니 다.Selenium 의 핵심 은 WebDriver 입 니 다.명령 집합 을 작성 하 는 인터페이스 로 많은 브 라 우 저 에서 호 환 되 어 실 행 될 수 있 습 니 다.
잡담 은 적 게 하고,경화물 은 안배 하 다.
Selenium 설치
pip 를 사용 하여 Python 의 Selenium 라 이브 러 리 를 설치 할 수 있 습 니 다:pip install selenium
(옵션 가능:프로젝트 를 실행 하고 브 라 우 저 를 제어 하려 면 브 라 우 저 에 지정 한 WebDriver 바 이 너 리 파일 을 설치 해 야 합 니 다.
WebDriver 바 이 너 리 파일 을 다운로드 하여 시스템 PATH 환경 변수 에 넣 습 니 다.)
로 컬 브 라 우 저 버 전의 업그레이드 로 인해 발생 하 는 버 전의 일치 하지 않 는 문제 와 시스템 PATH 환경 변수의 설정 이 비교적 번 거 롭 기 때문에 저 는 webdriver 를 사용 합 니 다.manager,
설치 설치 관리자:

pip install webdriver-manager

코드 를 쓰다
도입 모듈:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
우선 우 리 는 클래스 Search 를 정의 합 니 다.Baidu,초기 화 에 주로 사 용 됩 니 다.자동화 절 차 를 정의 하 는 방법;브 라 우 저 닫 기 를 끝 냅 니 다.

class Search_Baidu:
def __init__(self):
def search(self, keyword):
def tear_down(self):
이어서 우 리 는 각 방법의 실현 과정 을 각각 소개 한다.

   def __init__(self): #     ,     selenium webdriver
        url = 'https://www.baidu.com/' #           
        self.url = url

        options = webdriver.ChromeOptions()
        options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) #      ,      
        options.add_experimental_option('excludeSwitches', ['enable-automation']) #       ,        ,              Selenium
#     chrome   ,           webdriver_manager chrome driver,           options  
        self.browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)
        self.wait = WebDriverWait(self.browser, 10) #     10s,                ,               ,   10 

    def tear_down(self):
        self.browser.close() #  ,     
다음은 우리 가 브 라 우 저 를 조작 하 는 절 차 를 쓰 고 브 라 우 저 를 열 고 바 이 두 웹 페이지 에 들 어가 검색 키 워드 를 입력 하 는 것 입 니 다:Selenium,검색 결 과 를 기다 리 고 검색 결과 의 제목 과 사 이 트 를 파일 에 저장 합 니 다.

def search(self, keyword):
    #       
    self.browser.get(self.url)
    #        ,    10 ,       
    search_input = self.wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="kw"]')))
    #             
    search_input.send_keys(keyword)
    #   
    search_input.send_keys(Keys.ENTER)
    #   10  
    self.browser.implicitly_wait(10)
    #          
    results = self.browser.find_elements_by_css_selector(".t a , em , .c-title-text")
    #          
    with open("search_result.txt","w") as file:            
        for result in results:
            if result.get_attribute("href"):
                print(result.get_attribute("text").strip())
                #        
                title = result.get_attribute("text").strip()
                #        
                link = result.get_attribute("href")
                #     
                file.write(f"Title: {title}, link is: {link} 
")
점 위치 웹 요소
이 안에 중요 한 점 이 있 습 니 다.바로 웹 페이지 요 소 를 어떻게 누 르 느 냐 하 는 것 입 니 다.
예 를 들 면:

search_input = self.wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="kw"]')))
그리고:

self.browser.find_elements_by_css_selector(".t a , em , .c-title-text")
예 를 들 어 택배 기 사 는 주 소 를 통 해 당신 의 집 을 찾 아 택 배 를 보 냅 니 다.이곳 의 XPATH 와 CSS Selector 는 바로 웹 요소 의 주소 입 니 다.그러면 어떻게 얻 을 수 있 습 니까?
첫 번 째 는 Chrome 자체 개발 자 도구 입 니 다.단축 키 F12 를 누 를 수도 있 고 다음 그림 에서 찾 을 수도 있 습 니 다.
在这里插入图片描述
그리고 바 이 두 검색 상자 에서 오른쪽 단 추 를 누 르 십시오:
在这里插入图片描述
입력 상자 의 HTML 요 소 를 찾 습 니 다.
在这里插入图片描述
HTML 요소 에서 오른쪽 단 추 를 누 르 면 XPath 주 소 를 복사 합 니 다.
在这里插入图片描述
이것 은 비교적 간단 한 웹 페이지 요 소 를 찾 는 방법 이다.다음 에 우리 가 검색 결과 요 소 를 찾 을 때 번 거 로 움 을 만 났 습 니 다.다음 그림:
在这里插入图片描述
우 리 는 모든 요 소 를 단독으로 찾 을 수 없 으 며,규칙 을 찾 아야 합 니 다.한 번 에 모든 검색 결 과 를 찾 은 후에 하나의 list 로 돌아 가 야 합 니 다.우 리 는 이 list 를 옮 겨 다 닐 수 있 습 니 다.이것 은 어떻게 실현 합 니까?
다음,우 리 는 큰 신 구 를 요청 합 니 다:Selector Gadget
在这里插入图片描述
Selector Gadget 은 CSS Selector 생 성기 입 니 다.여러분 은 그의 공식 문서 에서 구체 적 인 사용 설명 을 찾 을 수 있 습 니 다.제 가 간단하게 소개 하 겠 습 니 다.
우선 Selector Gadget 을 시작 하고 아이콘 을 클릭 하 십시오.
在这里插入图片描述
브 라 우 저 에 다음 상자 가 나타 납 니 다:
在这里插入图片描述
그런 후에 우 리 는 웹 페이지 에서 마우스 왼쪽 단 추 를 눌 러 서 우리 가 찾 아야 할 요 소 를 클릭 합 니 다.
在这里插入图片描述
그리고 페이지 는 아래 모양 으로 변 합 니 다.
在这里插入图片描述
모든 노란색 부분 설명 이 선택 되 었 습 니 다.우리 가 원 하지 않 는 요 소 를 오른쪽 단 추 를 누 르 면 빨간색 으로 변 하고 제거 되 었 음 을 설명 합 니 다.만약 우리 가 또 필요 로 하 는 요 소 를 선택 하지 않 았 다 면,우 리 는 왼쪽 단 추 를 눌 러 서 그것 을 녹색 으로 바 꾸 었 을 것 이다.마지막 으로 우리 가 선택 하고 자 하 는 페이지 요 소 는 모두 녹색 이나 노란색 으로 변 했다.다음 과 같은 그림 이다.
在这里插入图片描述
우 리 는 틀 안의 내용 을 CSS Selector 로 복사 할 수 있다.
在这里插入图片描述
CSS Selector 를 통 해 모든 검색 결 과 를 찾 습 니 다.

results = self.browser.find_elements_by_css_selector(".t a , em , .c-title-text")
여기 서 우 리 는 이렇게 간단 한 애플 리 케 이 션 을 실현 했다.사실은 selenium 은 우리 가 웹 페이지 요 소 를 자동 으로 조작 하 는 데 도움 을 주 는 것 이다.그래서 우 리 는 웹 페이지 요 소 를 포 지 셔 닝 하 는 것 이 중요 하 다.본 고 는 너 에 게 약간의 도움 을 주 기 를 바란다.
다음은 제 가 코드 를 첨부 하 겠 습 니 다.

from datetime import time
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys

class Search_Baidu:
    def __init__(self):
        url = 'https://www.baidu.com/'
        self.url = url

        options = webdriver.ChromeOptions()
        options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) #      ,      
        options.add_experimental_option('excludeSwitches', ['enable-automation']) #       ,        ,              Selenium

        self.browser = webdriver.Chrome(ChromeDriverManager().install(), options=options)
        self.wait = WebDriverWait(self.browser, 10) #     10s

    def search(self, keyword):
        #       
        self.browser.get(self.url)
        #        ,    10 ,       
        search_input = self.wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="kw"]')))
        #             
        search_input.send_keys(keyword)
        #   
        search_input.send_keys(Keys.ENTER)
        #   10  
        self.browser.implicitly_wait(10)
        #          
        results = self.browser.find_elements_by_css_selector(".t a , em , .c-title-text")
        #          
        with open("search_result.txt","w") as file:            
            for result in results:
                if result.get_attribute("href"):
                    print(result.get_attribute("text").strip())
                    #        
                    title = result.get_attribute("text").strip()
                    #        
                    link = result.get_attribute("href")
                    #     
                    file.write(f"Title: {title}, link is: {link} 
") def tear_down(self): self.browser.close() if __name__ == "__main__": search = Search_Baidu() search.search("selenium") search.tear_down()
파 이 썬 이 Selenium 을 사용 하여 자동 으로 바 이 두 검색 을 진행 하 는 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 파 이 썬 Selenium 자동 바 이 두 검색 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기