2017-06-21 3 views
0

Jusqu'à présent, mon code réussit à lever le code HTML à partir des 5 résultats qu'il ramasse lorsqu'il reçoit le nom d'un subreddit. Maintenant, je veux faire une recherche pour les liens imgur, que ce soit pour un album, contenant/a/ou une seule image. Je veux ensuite lever ce lien et l'envoyer à une autre classe (imgurdl)Imgur lien grattage à partir subreddits en Python

Quelle est la meilleure façon, compte tenu de mon code actuel?

from bs4 import BeautifulSoup 
import praw 
from urllib2 import urlopen 
import urllib2 
import sys 
from urlparse import urljoin 
import config 
import imgurdl 
import requests 

cache = [] 
soup = BeautifulSoup 
def reddit_login(): 
    r = praw.Reddit(username = USER, 
       password = config.password, 
       client_id = config.client_id, 
       client_secret = config.client_secret, 
       user_agent = " v0.3" 
       ) 
    print("***********logged in successfully***********") 
    return r 

def get_category_links(subredditName, r): 
    print("Grabbing subreddit...") 
    submissions = r.subreddit(subredditName).hot(limit=5) 
    print("Grabbing comments...") 
    #comments = subred.comments(limit = 200) 
    for submission in submissions: 
     htmlSource = requests.get(submission.url).text 
     print (htmlSource) 


r = reddit_login() 
get_category_links(sys.argv[1], r) 
+0

Qu'avez-vous essayé jusqu'à présent? Et pourquoi ne pas utiliser l'API de Reddit? –

+0

@KevinMGranger Je n'étais pas au courant qu'il y en avait un et je ne le connais pas. Avez-vous des liens vers la documentation et cela me permettrait-il de soulever un lien à la mode? Je n'ai rien essayé jusqu'à présent. – BitLord

+0

Pour trouver un lien imgur dans le code HTML, vous pouvez utiliser 're'. – BurningKarl

Répondre

0

Vous pouvez obtenir l'URL de Praw puis vérifiez si elle est de Imgur dans la boucle elle-même, puis l'envoyer à la fonction appropriée. De cette façon, il n'y aurait pas besoin de passer par la source html.

for submission in submissions: 
    link = submission.url 
    if "imgur.com/a/" in link: 
     #Send to imgur album downloader 
    elif link.endswith(".jpg") or link.endswith(".png"): 
     #Sent to image downloader 
    elif "imgur.com/" in link: 
     #Send to single image imgur downloader