【问题标题】:Imgur link scraping from subreddits in Python从 Python 中的 subreddits 抓取 Imgur 链接
【发布时间】:2017-11-24 16:37:00
【问题描述】:

到目前为止,我的代码成功地从它在给定 subreddit 名称时提取的 5 个结果中提取了 HTML 代码。现在我想搜索 imgur 链接,无论是专辑,包含 /a/ 还是单个图像。然后我想解除此链接并将其发送到另一个班级(imgurdl)

根据我当前的代码,最好的方法是什么?

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) 

【问题讨论】:

  • 到目前为止你尝试过什么?为什么不使用 Reddit 的 API?
  • @KevinMGranger 我不知道有一个,我也不熟悉它。您是否有文档链接,是否可以让我以时尚的方式解除链接?到目前为止我还没有尝试过任何东西。
  • 要在 HTML 代码中找到 imgur 链接,您可以使用 re
  • @BurningKarl 你能详细说明一下吗?
  • 你能在你的 for 循环中对 submission.url 进行文本匹配吗?

标签: python web-scraping href reddit imgur


【解决方案1】:

您可以从 PRAW 获取 url,然后检查它是否来自循环本身内的 imgur,然后将其发送到适当的函数。这样就不需要通过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

【讨论】:

    猜你喜欢
    • 2020-10-17
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2016-01-28
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多