AI

MS 빙챗(Bing Chat)으로 RPA 파이썬 코드 짜기

담락 이승훈 실장 2023. 3. 8. 23:50

 

MS 빙의 채팅 승인을 받아서 아래와 같이 요청해 보았습니다..

 

"매일 주기적으로 네이버와 구글에서 특정 키워드로 크롤링을 하는 RPA 코드를 파이썬으로 짜주세요"

 

답변은.....

 

파이썬으로 크롤링을 하는 RPA 코드를 짜려면, 다음과 같은 라이브러리가 필요합니다.

 

requests: 웹 페이지에 접속하고 HTML 소스를 가져오는 라이브러리입니다.

BeautifulSoup: HTML 소스를 파싱하고 원하는 정보를 추출하는 라이브러리입니다.

selenium: 웹 브라우저를 제어하고 동적인 웹 페이지를 크롤링하는 라이브러리입니다.

schedule: 주기적으로 코드를 실행할 수 있게 해주는 라이브러리입니다.

다음은 이러한 라이브러리들을 사용하여 네이버와 구글에서 특정 키워드로 크롤링을 하는 RPA 코드의 예시입니다. 이 코드는 매일 오전 10시에 실행되며, 검색 결과의 제목과 링크를 csv 파일로 저장합니다.

 

# 필요한 라이브러리 임포트

import requests

from bs4 import BeautifulSoup

from selenium import webdriver

import csv

import schedule

import time

 

# 크롤링할 키워드 리스트

keywords = ["빙", "RPA", "파이썬"]

 

# 네이버에서 키워드 검색하고 결과 크롤링하는 함수 정의

def naver_crawling(keyword):

# 네이버 검색 URL 생성

url = f"https://search.naver.com/search.naver?where=news&sm=tab_jum&query={keyword}"

# requests 모듈로 URL에 접속하고 HTML 소스 가져오기

response = requests.get(url)

# BeautifulSoup 객체 생성

soup = BeautifulSoup(response.text, "html.parser")

# 검색 결과의 제목과 링크가 있는 태그들 찾기

articles = soup.select("ul.list_news > li > div.news_area > a")

# 결과를 저장할 리스트 생성

result = []

# 각 태그에서 제목과 링크 추출하기

for article in articles:

title = article.text # 제목은 태그의 텍스트 부분에 있음

link = article["href"] # 링크는 태그의 href 속성에 있음

result.append([title, link]) # 제목과 링크를 리스트로 만들어 result에 추가하기

 

return result

 

# 구글에서 키워드 검색하고 결과 크롤링하는 함수 정의 (selenium 사용)

def google_crawling(keyword):

# 구글 검색 URL 생성 (q는 쿼리 파라미터)

url = f"https://www.google.com/search?q={keyword}"

 

# selenium을 위한 웹 드라이버 설정 (Chrome 사용)

options = webdriver.ChromeOptions()

 

# headless 옵션: 실제로 창을 열지 않고 백그라운드에서 작업 수행 가능

options.add_argument("headless")

 

# user-agent 옵션: 서버가 클라이언트가 어떤 환경인지 알 수 있도록 정보 전달

options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36")

 

# 드라이버 객체 생성

driver = webdriver.Chrome(options=options)

 

# URL에 접속하기

driver.get(url)

 

# BeautifulSoup 객체 생성

soup = BeautifulSoup(driver.page_source, "html.parser")

 

# 검색 결과의 제목과 링크가 있는 태그들 찾기

articles = soup.select("div.g > div.tF2Cxc > div.yuRUbf > a")

 

라고 나오네요..내일 개발자들과 코드 테스트해 봐야 할 거 같습니다...