mirror of
https://github.com/metafy-social/python-scripts.git
synced 2024-11-27 14:01:12 +00:00
Added a new feature - YCombinator News Ranking Script
This commit is contained in:
parent
ffd520e3e8
commit
678a154413
8
scripts/YCombinator News Ranking App/README.md
Normal file
8
scripts/YCombinator News Ranking App/README.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
# YCombinator News Ranking App
|
||||
This simple script will scrape the YCombinator News Website and rank the highest upvote news.
|
||||
|
||||
## Usage
|
||||
|
||||
* requires beautifulsoup, requests
|
||||
* Use `pip install beautifulsoup requests`
|
||||
* Run `python main.py`
|
32
scripts/YCombinator News Ranking App/main.py
Normal file
32
scripts/YCombinator News Ranking App/main.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
from bs4 import BeautifulSoup
|
||||
import requests
|
||||
|
||||
response = requests.get("https://news.ycombinator.com/news")
|
||||
|
||||
yc_webpage = response.text
|
||||
|
||||
soup = BeautifulSoup(yc_webpage, "html.parser")
|
||||
|
||||
articles=[]
|
||||
articles_span = soup.find_all(name="span", class_="titleline")
|
||||
for item in articles_span:
|
||||
articles.append(item.find(name='a'))
|
||||
|
||||
article_texts = []
|
||||
article_links = []
|
||||
|
||||
|
||||
for article_tag in articles:
|
||||
text = article_tag.getText()
|
||||
article_texts.append(text)
|
||||
link = article_tag.get("href")
|
||||
article_links.append(link)
|
||||
article_upvotes = [int(score.getText().split()[0]) for score in soup.find_all(name="span", class_="score")]
|
||||
|
||||
largest = max(article_upvotes)
|
||||
largest_index = article_upvotes.index(largest)
|
||||
|
||||
print("Highest Ranked news for today is :\n")
|
||||
print(f"Upvotes: {largest}")
|
||||
print(f"Article Heading: {article_texts[largest_index]}")
|
||||
print(f"Article Link: {article_links[largest_index]}")
|
Loading…
Reference in New Issue
Block a user