Compare commits
2 Commits
73f6015393
...
b38e2d2614
| Author | SHA1 | Date | |
|---|---|---|---|
| b38e2d2614 | |||
| 6b14fa1bac |
50
script.py
50
script.py
@@ -1,9 +1,16 @@
|
||||
import requests
|
||||
import json
|
||||
import logging
|
||||
from time import sleep
|
||||
from requests.auth import HTTPBasicAuth
|
||||
|
||||
BASE_URL = "https://livetse.ir/wp-json/wp/v2/comments"
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format="%(asctime)s - %(levelname)s - %(message)s"
|
||||
)
|
||||
|
||||
BASE_URL = "https://livetse.ir/wp-json/wp/v2/"
|
||||
|
||||
USERNAME = "your_username"
|
||||
APP_PASSWORD = "your_application_password"
|
||||
@@ -12,13 +19,14 @@ APP_PASSWORD = "your_application_password"
|
||||
def fetch_comments(post_id=None, per_page=100):
|
||||
all_comments = []
|
||||
page = 1
|
||||
total_pages = 1
|
||||
total_pages = 1
|
||||
|
||||
COMMENTS_URL = f"{BASE_URL}comments"
|
||||
|
||||
while page <= total_pages:
|
||||
params = {
|
||||
"per_page": per_page,
|
||||
"page": page,
|
||||
"status": "approve"
|
||||
"page": page
|
||||
}
|
||||
|
||||
if post_id:
|
||||
@@ -26,7 +34,7 @@ def fetch_comments(post_id=None, per_page=100):
|
||||
|
||||
try:
|
||||
response = requests.get(
|
||||
BASE_URL,
|
||||
COMMENTS_URL,
|
||||
params=params,
|
||||
auth=HTTPBasicAuth(USERNAME, APP_PASSWORD),
|
||||
timeout=10
|
||||
@@ -34,39 +42,39 @@ def fetch_comments(post_id=None, per_page=100):
|
||||
|
||||
if response.status_code == 200:
|
||||
comments = response.json()
|
||||
|
||||
|
||||
if page == 1:
|
||||
total_pages = int(response.headers.get("X-WP-TotalPages", 1))
|
||||
print(f"Total pages: {total_pages}")
|
||||
logging.info(f"Total pages: {total_pages}")
|
||||
|
||||
if not comments:
|
||||
print("No more comments.")
|
||||
logging.warning("No more comments.")
|
||||
break
|
||||
|
||||
all_comments.extend(comments)
|
||||
print(f"Fetched page {page}/{total_pages} ({len(comments)} comments)")
|
||||
logging.info(f"Fetched page {page}/{total_pages} ({len(comments)} comments)")
|
||||
|
||||
page += 1
|
||||
sleep(0.5)
|
||||
|
||||
elif response.status_code == 401:
|
||||
print("Authentication failed ")
|
||||
logging.error("Authentication failed")
|
||||
break
|
||||
|
||||
elif response.status_code == 403:
|
||||
print("Access forbidden ")
|
||||
logging.error("Access forbidden")
|
||||
break
|
||||
|
||||
elif response.status_code == 400:
|
||||
print("Bad request :", response.text)
|
||||
logging.error(f"Bad request: {response.text}")
|
||||
break
|
||||
|
||||
else:
|
||||
print(f"Error: {response.status_code} - {response.text}")
|
||||
logging.error(f"Error: {response.status_code} - {response.text}")
|
||||
break
|
||||
|
||||
except requests.exceptions.RequestException as e:
|
||||
print("Request failed:", e)
|
||||
logging.exception(f"Request failed: {e}")
|
||||
break
|
||||
|
||||
return all_comments
|
||||
@@ -78,19 +86,21 @@ def save_to_json(data, filename="comments.json"):
|
||||
|
||||
|
||||
def main():
|
||||
post_id = None
|
||||
post_id = None
|
||||
|
||||
comments = fetch_comments(post_id=post_id)
|
||||
|
||||
print(f"\nTotal comments fetched: {len(comments)}")
|
||||
logging.info(f"Total comments fetched: {len(comments)}")
|
||||
|
||||
for c in comments[:3]:
|
||||
print("-" * 40)
|
||||
print("Author:", c.get("author_name"))
|
||||
print("Content:", c.get("content", {}).get("rendered"))
|
||||
logging.info("-" * 40)
|
||||
logging.info(f"Author: {c.get('author_name')}")
|
||||
logging.info(f"Content: {c.get('content', {}).get('rendered')}")
|
||||
|
||||
save_to_json(comments)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user