import csv
import requests
from urllib.parse import quote_plus
from bs4 import BeautifulSoup
import pandas as pd
# cp949 에러 발생 시 csv 파일 인코딩을 메모장에서 ANSI로 변경
# file_name: 파워링크 검색 키워드 목록
# find: 탐색할 업체
file_name = "keyword.csv"
find = "위드피아노"
# 파일 열기
f = open(file_name, 'r', encoding="utf-8")
df = pd.read_csv(f)
keywords = df['이름']
# PC 버전 크롤링
data = []
url = 'https://ad.search.naver.com/search.naver?where=ad&x=0&y=0&query='
for keyword in keywords:
base_url = url + quote_plus(keyword)
response = requests.get(base_url)
if response.status_code == 200:
soup = BeautifulSoup(response.content, 'html.parser')
items = soup.find_all(attrs={'class': 'lnk_tit'})
rank = 1
temp = 0
# 검색 결과 확인
for item in items[:10]: # 10위까지만 탐색
serial = item.get_text().strip()
print(f"Keyword: { keyword }, Rank: { rank }, Text: { serial }")
if find in serial:
temp = rank
rank = rank + 1
data.append([keyword, temp])
else:
print(f"Failed to retrieve search results for { keyword }")
# 결과 저장
result = pd.DataFrame(data, columns=['Name', 'Rank'])
print(result)
result.to_csv('result.csv', encoding='utf-8', index=False)
인터넷에서 소스코드 긁어와서 이대로 적용해봤더니 크롤링은 되지만
확장소재에 '추가제목'까지 키워드로 인식해 순위가 정확하지 않습니다!
결과값에서 키워드가 아닌 위에 링크(with-piano.com)로 나오게 하려면 어느 부분을 수정해야 할까요?
개발 부분에 대해서는 잘 모르는지라 신입 마케터 한 명 살려주신다는 생각으로 도와주시면 정말 감사하겠습니다 ㅠㅠ
새댓글
전체보기