discord icon
سرور دیسکورد گاردایران

پست های پیشنهاد شده

logo.jpg.214c8eefc24b02a1cd4032c98d3b6a18.jpg

هکر نیوز را در ترمینال خود بخوانید!

 

نحوه استفاده:

python3 hackernews.py

python3 hackernews.py {page_number}

 

سورس کد:

#!/usr/bin/python3

from bs4 import BeautifulSoup
import requests
from colorama import Back, Fore
import sys
import os
import time

os.system('cls' if os.name == 'nt' else 'clear')

BOLD = '\033[1m'
RESET = '\033[0m'

print(f"""
{BOLD}{Fore.LIGHTRED_EX}
██╗  ██╗ █████╗  ██████╗██╗  ██╗███████╗██████╗     ███╗   ██╗███████╗██╗    ██╗███████╗
██║  ██║██╔══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗    ████╗  ██║██╔════╝██║    ██║██╔════╝
███████║███████║██║     █████╔╝ █████╗  ██████╔╝    ██╔██╗ ██║█████╗  ██║ █╗ ██║███████╗
██╔══██║██╔══██║██║     ██╔═██╗ ██╔══╝  ██╔══██╗    ██║╚██╗██║██╔══╝  ██║███╗██║╚════██║
██║  ██║██║  ██║╚██████╗██║  ██╗███████╗██║  ██║    ██║ ╚████║███████╗╚███╔███╔╝███████║
╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝    ╚═╝  ╚═══╝╚══════╝ ╚══╝╚══╝ ╚══════╝
{RESET}{Fore.RESET}""")

try:
    pagen = int(sys.argv[1])
except:
    pagen = 1

url = f"https://news.ycombinator.com/news?p={pagen}"
page = requests.get(url).content
soup = BeautifulSoup(page, 'lxml')

news = []

for item in soup.select(".itemlist .athing"):
    item_id = item['id']
    rank = item.select(".rank")[0].string
    storytitle = item.select("a.storylink")[0].string
    sitestr = f"({item.select('.sitestr')[0].string})"if item.select(".sitestr") else ""
    storylink = item.select("a.storylink")[0]['href'] if sitestr else ""
    subtext = item.find_next_sibling()
    try:
        score = subtext.select(".score")[0].string
    except:
        score = ""
    age = subtext.select(".age")[0].string
    comments = subtext.select("a")[-1].string
    comments = comments if "comment" in comments else ""

    news.append({
        'index': rank,
        'id': item_id,
        'title': storytitle,
        'link': storylink,
        'site': sitestr,
        'score': score,
        'age': age,
        'comments': comments
    })

for i in news:
    for c in f"{BOLD}{Fore.LIGHTBLUE_EX}{i['index']}{Fore.GREEN}{i['title']}{RESET}{Fore.RESET} {Fore.LIGHTYELLOW_EX}{i['site']}{Fore.RESET}":
        print(c, end="", flush=True)
        time.sleep(0.04)
    print()

    if i['link']: print(i['link'])
    print(f"{Fore.LIGHTRED_EX}{i['score']}\t{i['age']}\t{i['comments']}{Fore.RESET}")
    print(f"{Fore.MAGENTA}https://news.ycombinator.com/item?id={i['id']}{Fore.RESET}")
    print()
    time.sleep(0.2)

requirements.txthackernews.py

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری