查看完整版本: python 隨機抓取imgur圖片的問題
頁: [1]

mmxshianxmm 發表於 2019-7-19 10:12 PM

python 隨機抓取imgur圖片的問題

想請教有在寫python程式的大大們一個問題
小弟我最近在研究 line bot 想增加一個可以隨意抓取imgur隨機的圖片功能
高手用的爬蟲我還不熟練,所以就沒用爬蟲,只用簡單的正則表示
我是發現imgur圖片命名有一個規則為https://i.imgur.com/xxxxxxx.jpg ,xxxxxxx為隨機字母跟數字
但是我用隨機字母數字帶入後,一直找不到檔案抓不到圖,失敗率高達99%,偶然有些檔名有存在
有沒有甚麼寫法可以在一開始就能偵測出有無此檔名的檔案,如沒有隨機檔名的檔案
再進入迴圈再搜尋隨機檔名
直到找到符合隨機檔名的檔案再回傳給line的使用者 ?

以下是我的程式
def imgur_ran():
    u1 = ''.join(random.choice(string.ascii_letters + string.digits) for x in range(5))       
    url = 'https://i.imgur.com/'+u1+'.jpg'
    return url
       
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    if event.message.text == 'st':
        buttons_template = TemplateSendMessage(
            alt_text='目錄 template',
            template=ButtonsTemplate(
                title='開始功能',
                text='請選擇',
                thumbnail_image_url= image_ran(),
                actions=[
                    MessageTemplateAction(
                        label='imgur隨機圖',
                        text='imgur隨機圖'
                    )
                ]
            )
        )
        line_bot_api.reply_message(event.reply_token, buttons_template)       
    elif event.message.text == "imgur隨機圖":
        url = imgur_ran()
        image_message = ImageSendMessage(
            original_content_url=url,
            preview_image_url=url
        )                               
        line_bot_api.reply_message(
            event.reply_token, image_message)
               
        return 0       

感激不盡...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>
頁: [1]