| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- SQL
- 알고리즘코딩테스트
- 서버
- API
- 탐욕알고리즘
- SQLD
- 개발자
- 자바
- 그리디알고리즘
- 정렬알고리즘
- 알고리즘
- JQuery
- ChatGPT
- codingtest
- 백준
- 코딩테스트
- 프로그래머스
- javascript
- 네트워크
- SQLP
- java
- Spring
- 파이썬
- 하루코딩
- 개발
- HTTP
- 챗지피티
- jsp
- Python
- HTTP상태
- Today
- Total
개발자's Life
[Python] 아마존 웹 크롤링, Bard(바드) API사용하여 워드프레스 게시글 올리기 - Rowen Jobs 본문
[Python] 아마존 웹 크롤링, Bard(바드) API사용하여 워드프레스 게시글 올리기 - Rowen Jobs
Rowen Jobs 2023. 8. 4. 06:30이전 등록한 내용 중 아마존 웹 크롤링과 Bard API(공식제공된 API는 아님) 그리고 워드프레스 게시 코드를 응용하여 파이썬 으로 자동게시 되게 해보겠습니다.
2023.08.03 - [Back-end/Python] - [Python] 아마존 베스트셀러 페이지 웹 크롤링하기
[Python] 아마존 베스트셀러 페이지 웹 크롤링하기
from bs4 import BeautifulSoup import requests # 베스트셀러 Url 과 header 부분에서 웹으로 접속하는 부분과 동일하게 Mozilla/5.0 으로 셋팅해줍니다. soup = requests.get("https://www.amazon.com/Best-Sellers/zgbs", headers={'User-
rowen.tistory.com
2023.08.01 - [Back-end/Python] - [Python] Bard(좀 편법..) 를 이용하여 Bard 사용해보기
[Python] Bard(좀 편법..) 를 이용하여 Bard 사용해보기
역시나 Bard 를 이용하여 Bard 를 사용하는 코드는 단순하다. 이 말이 이해가 안갈수도 있으니 풀어보자면 Bard는 구글에서 만든 대형언어모델이지만 공식적으로 API 를 제공해주지 않는다고 한다.
rowen.tistory.com
2023.07.28 - [Back-end/Python] - [Python] 워드프레스 자동 게시글 올리는 코드 작성(자동화)
[Python] 워드프레스 자동 게시글 올리는 코드 작성(자동화)
워드프레스에 생각보다 아주 간단하게 자동 포스팅을 할 수 있었다. import requests from urllib.parse import urljoin from datetime import datetime # 변수셋팅 ##도메인 주소 WP_URL = 'https://yourDomain.com/' ##추가 사용
rowen.tistory.com
위 세개 게시글 참고하여 원하시는대로 코드 작성하시면 됩니다.
전체 코드에 대해 아래 코드에 주석 달아 공유드리겠습니다.
import json
import requests
import urllib.request
from urllib.parse import urljoin
from datetime import datetime
from bs4 import BeautifulSoup
import requests
# 바드 api 설치
import bardapi
import os
# api key를 입력하세요.
os.environ['_BARD_API_KEY']="ZQgQmZQ3oU9Wx5FeF8XsXax6SkvviQKeYGsTgbdfLY9-oMmnc4FWRQhMTduAhMcJ2Y4IkQ."
# 변수셋팅
##도메인 주소
WP_URL = 'https://yourDomain.com/'
##추가 사용자이름
WP_USERNAME = 'userName'
##추가 된 사용자 편집 페이지에서 발급 받은 비밀번호
WP_PASSWORD = 'userPassword'
#publish(즉시발행), draft(임시저장)
status = 'draft'
##슬러그
slug = 'auto-slug'
##제목
title = '파이썬 자동포스팅'
##본문내용을 html 로 적으면 된다
content = 'h1 태그 : <h1>H1 태그 테스트</h1>'
##카테고리 아이디는 글 > 카테고리 > 카테고리 이름에 커서를 가져가면 카테고리 아이디값이 나온다.(tag_id로 되어 있다.)
category_ids = [1]
##카테고리 아이디 찾는 방법과 동일
tag_ids = [6]
## 이미지 파일 저장 경로
folder="/path/"
# 아마존 웹 크롤링 시작
soup = requests.get("https://www.amazon.com/Best-Sellers/zgbs", headers={'User-agent' : 'Mozilla/5.0'})
html = BeautifulSoup(soup.text, 'html.parser')
categoris = html.select('div.a-column.a-span8')
categoris_list = []
for categorie in categoris :
categoris_list.append(categorie.text)
categoris_list.reverse()
divs = html.select('div.a-carousel-row-inner')
html_content = ''
now = datetime.now()
for div in divs:
idx = 0
lis = div.select('li.a-carousel-card')
for li in lis :
num = li.select_one('span.zg-bdg-text').text
title = li.select('a.a-link-normal')[1].text
url = 'https://www.amazon.com' + li.select('a.a-link-normal')[1]['href']
img_url2 = li.select('a.a-link-normal')[0].select('div._cDEzb_noop_3Xbw5')[0].select('img.p13n-product-image')[0]['src']
rating = li.select('a.a-link-normal')[2].text
pricing = li.select('a.a-link-normal')[3].text
# -- 아마존 웹 크롤링 완료
# 바드 작업 시작
# 질문작성 : 키워드 끌고오든 해야함.
input_text = "Can you tell me about" + title + "?"
# 바드 대답
response = bardapi.core.Bard().get_answer(input_text)
summary = response['choices'][0]['content'][0]
# 워드프레스 본문내용 정리
html_content = f'''
Star Rating : {rating} <br>
Price : {pricing}<br>
summary : {summary}<br><br><br>
about Stuff <a href={url}> click here </a>
'''
# 이미지 경로 저장
amzon_img_url = img_url2
filename = "amazon_" + str(idx) + ".jpg"
filepath=folder + filename
urllib.request.urlretrieve(amzon_img_url, "/path/img_" + str(idx) + ".jpg")
idx = idx + 1
#Finish API
# 이미지 업로드
url = urljoin(WP_URL, '/wp-json/wp/v2/media/')
f = open(filepath, 'rb')
image_data = f.read()
f.close()
espSequence = bytes(filename, "utf-8").decode("unicode_escape")
headers = {
'Content-Type': 'image/png',
'Content-Disposition': 'attachment; filename=%s' % espSequence,
}
res2 = requests.post(
url,
data=image_data,
headers=headers,
auth=(WP_USERNAME, WP_PASSWORD),
)
media_info = res2.json()
media_id = media_info['id']
media_url = media_info['source_url']
img_contents = f'''[caption id="attachment_{media_id}" align="aligncenter" width="500"]<img class="size-full wp-image-{media_id}" src="{media_url}" alt="{title}" width="500" height="500"> {title}[/caption]
<p> </p><br />
<p> </p>
'''
# 타이틀, 내용 업로드
content = html_content
payload = {"status": status,
"slug": slug,
"title": title,
"content": content,
# "date": now.isoformat(),
"categories": category_ids,
"tags": tag_ids,
}
if media_id is not None:
payload['featured_media'] = media_id
res = requests.post(urljoin(WP_URL, "/wp-json/wp/v2/posts"),
data=json.dumps(payload),
headers={'Content-type': "application/json"},
auth=(WP_USERNAME, WP_PASSWORD))
if res.ok:
print(f"성공 code:{res.status_code}")
else:
print(f"실패 code:{res.status_code} reason:{res.reason}")
categoris_list.pop()
'Back-end > Python' 카테고리의 다른 글
| [Python] 아마존 베스트셀러 페이지 웹 크롤링하기 (0) | 2023.08.03 |
|---|---|
| [Python] ChatGPT 를 이용하여 워드프레스 게시글 자동업로드_키워드는 식품안전나라 API 사용 (5) | 2023.08.02 |
| [Python] Bard(좀 편법..) 를 이용하여 Bard 사용해보기 (0) | 2023.08.01 |
| [Python] ChatGPT API 를 이용하여 ChatGPT 사용해보기 (0) | 2023.07.31 |
| [Python] 워드프레스 자동 게시글 올리는 코드 작성(자동화) (0) | 2023.07.28 |