Как обработать пропустить некоторые блоки, которые работали через строки из базы данных, когда у нас есть ошибки и мы делаем правильную работу в Python - PullRequest
0 голосов
/ 05 апреля 2019

он выбирает строки, у которых Link_status значение столбца не равно ok и сохраняет тему в списке, затем получает первый элемент списка, открывает веб-сайт и ищет первый элемент, если на веб-сайте есть любой контент, в котором выполняется скрипт, и обновите значение Link_status первого элемента списка до ok. это цель моего кода, но иногда какой-то элемент из списка не может быть найден на веб-сайте, и код будет закрыт. но я хочу, чтобы, когда элемент не смог найти код, не закрывался, просто пропустите этот элемент и найдите следующий элемент в списке.

код:

lucas_db = mysql.connector.connect(
    host='localhost',
    user="root",
    password="uhvDichcuCSWkjce@Mfoe",
    database="Lucas_database")
try:
    # select those releases not linked and first one
    mycursor_link_find = lucas_db.cursor()
    Select_command_link_find = "SELECT Release_Name FROM Lucas_t_db WHERE Published_Time > SUBDATE(CURRENT_DATE, INTERVAL 1 HOUR) AND Parent_id IS NOT NULL AND Link_status !='ok' "
    mycursor_link_find.execute(Select_command_link_find)
    Post_id_rel_mov = mycursor_link_find.fetchall()
    print(">!>!>!> ", Post_id_rel_mov)
    Post_id_rel_mov = [a[0] for a in Post_id_rel_mov]
    print(Post_id_rel_mov[0])
    x = Post_id_rel_mov[0]



    # select all releases those are same parent id
    mycursor_link_find_pid = lucas_db.cursor()
    Select_command_link_find_pid = "SELECT Parent_id  FROM Lucas_t_db WHERE Release_Name = '"+x+"' "
    mycursor_link_find_pid.execute(Select_command_link_find_pid)
    Post_id_link= mycursor_link_find_pid.fetchall()
    Post_id_link = [a[0] for a in Post_id_link]
    print(Post_id_link)


    z = str(Post_id_link[0])
    mycursor_link_rls_name = lucas_db.cursor()
    Select_command_rls_name = "SELECT Release_Name  FROM Lucas_t_db WHERE Post_ID = '"+z+"' AND Post_ID IS NOT NULL "
    mycursor_link_rls_name.execute(Select_command_rls_name)
    Post_link_rls_name= mycursor_link_rls_name.fetchall()
    Post_link_rls_name = [a[0] for a in Post_link_rls_name]
    link_title = Post_link_rls_name[0]


    z = str(Post_id_link[0])
    mycursor_link_cont = lucas_db.cursor()
    Select_command_cont = "SELECT Post_content  FROM Lucas_t_db WHERE Post_ID = '"+z+"' AND Post_ID IS NOT NULL "
    mycursor_link_cont.execute(Select_command_cont)
    Post_link_cont= mycursor_link_cont.fetchall()
    Post_link_cont = [a[0] for a in Post_link_cont]
    link_cont = Post_link_cont[0]

    try:
        def get_rls(t):
            # w = re.match(".*\d ", t)
            w = re.match(".*S\d+E\d+", t)
            if not w: raise Exception("Error For Regular Expression")
            return w.group(0)


        regular_case = [x]
        for w in regular_case:
            Regular_part = get_rls(w)
            print(">>>> Regular Part: ", Regular_part)
    except:
        def get_rls(t):
            w = re.match(".*\d ", t)
            # w = re.match(".*S\d+E\d+", t)
            if not w: raise Exception("Error For Regular Expression")
            return w.group(0)


        regular_case = [x]
        for w in regular_case:
            Regular_part = get_rls(w)
            print(">>>> Regular Part: ", Regular_part)

    Regular_part= Regular_part.replace(" ", "+")

    # Produced_link='http://scene-rls.net/?s='+Regular_part+'&submit=Find'
    # wClient = Wreq(Produced_link)
    # d_page_source = wClient.read()
    # wClient.close()
    # page_sop = Wsoup(d_page_source, "html.parser")

    # driver.get('http://scene-rls.net/?s='+Regular_part+'&submit=Find')


    driver = webdriver.Chrome(executable_path=r'C://chromdriver//chromedriver.exe')
    xx = "http://scene-rls.net/?s='"+Regular_part+"'&submit=Find" 
    driver.execute_script('''window.open("{},_blank");'''.format(xx))
    driver.switch_to_window(driver.window_handles[1])

    time.sleep(22)

    my_driver = driver.page_source

    scn_rls_soup = Wsoup(my_driver, "html.parser")

    z = str(Post_id_link[0])
    mycursor_link_find_1080 = lucas_db.cursor()
    Select_command_link_find_1080 = "SELECT Release_Name FROM Lucas_t_db WHERE Parent_id = '"+z+"'"
    mycursor_link_find_1080.execute(Select_command_link_find_1080)
    Post_rls_link_1080= mycursor_link_find_1080.fetchall()
    Post_rls_link_1080 = [a[0] for a in Post_rls_link_1080]
    for a in Post_rls_link_1080:
        print("1080p >>>",a)

        # mycursor_link_stat_1080 = lucas_db.cursor()
        # Select_command_link_stat_1080 = "SELECT Link_status FROM Lucas_t_db WHERE Parent_id = '"+z+"' AND Link_status LIKE '%_1080%' "
        # mycursor_link_stat_1080.execute(Select_command_link_stat_1080)
        # lins_stat_1080= mycursor_link_stat_1080.fetchall()
        # lins_stat_1080 = [a[0] for a in lins_stat_1080]
        # print("1080p >>>",lins_stat_1080)

        try:
            try:
                uploadgig_href_1080 = scn_rls_soup.find(text=Post_rls_link_1080).findNext("h2").find('a' , attrs={'href':re.compile("https://uploadgig.com/file/download/")})
                uploadgig_1080 = '<a href="'+uploadgig_href_1080.get('href')+'">'
                print("U_1080p",uploadgig_1080)
                end_a_u_1080 = "</a>"
                w = a

                mycursor_link_sub = lucas_db.cursor()
                mycursor_link_sub.execute("UPDATE Lucas_t_db SET Link_status = 'ok' WHERE Release_Name ='"+w+"' " )
                lucas_db.commit()
                print("commit")


            except AttributeError:
                info_links_1080 = scn_rls_soup.find(text=Post_rls_link_1080).findNext("h2").find('a' , attrs={'href':re.compile("http://nfo.scene-rls.net/")})
                print("")
                print(info_links_1080.get('href'))
                uploadgig_1080 = ""
                end_a_u_1080 = ""
                print("U_1080p no info center")

                w = a
                mycursor_link_sub = lucas_db.cursor()
                mycursor_link_sub.execute("UPDATE Lucas_t_db SET Link_status = 'ok' WHERE Release_Name ='"+w+"' " )
                lucas_db.commit()
                print("commit")


        except:
            uploadgig_1080 = ""
            end_a_u_1080 = ""
            print("U_1080p no rls name")

    print(" every things ok  ")

except IndexError:
    print(" *************No unlinked Rls in DB************ ")

дайте какие-либо идеи для этой проблемы ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...