He aha ka hewa me ka ʻepekema Data? ʻOhi ʻikepili

He aha ka hewa me ka ʻepekema Data? ʻOhi ʻikepili
I kēia lā, aia 100500 mau papa ʻEpekema ʻIkepili a ua ʻike lōʻihi ʻia ʻo ka hapa nui o ke kālā ma ka ʻIkepili ʻIkepili hiki ke loaʻa ma o nā papa ʻIke ʻIkepili (no ke aha e ʻeli ai ke kūʻai aku ʻoe i nā koʻi?). ʻO ka hemahema nui o kēia mau papa, ʻaʻohe mea e pili ana i ka hana maoli: ʻaʻohe mea e hāʻawi iā ʻoe i ka ʻikepili maʻemaʻe, hoʻoponopono ʻia i ke ʻano i koi ʻia. A ke haʻalele ʻoe i ka papa a hoʻomaka e hoʻoponopono i kahi pilikia maoli, nui nā nuances e puka mai.

No laila, ke hoʻomaka nei mākou i nā moʻolelo "He aha ka mea e hewa ai me ka ʻIkepili ʻIke", e pili ana i nā hanana maoli i loaʻa iaʻu, koʻu mau hoa a me nā hoahana. E kālele mākou i nā hana ʻepekema Data maʻamau me ka hoʻohana ʻana i nā hiʻohiʻona maoli: pehea e hana maoli ai kēia. E hoʻomaka kākou i kēia lā me ka hana ʻohi ʻikepili.

A ʻo ka mea mua e hina ai ka poʻe i ka wā e hoʻomaka ai lākou e hana me ka ʻikepili maoli ʻo ia ka hōʻiliʻili ʻana i kēia ʻikepili i pili loa iā mākou. ʻO ka ʻōlelo nui o kēia ʻatikala:

Hoʻohaʻahaʻa mākou i ka manawa, nā kumuwaiwai, a me ka hoʻoikaika ʻana e pono ai e hōʻiliʻili, hoʻomaʻemaʻe, a hoʻomākaukau i ka ʻikepili.

A ʻo ka mea nui loa, e kūkākūkā mākou i nā mea e hana ai e pale ai i kēia.

Wahi a nā manaʻo like ʻole, hoʻomaʻemaʻe, hoʻololi, hoʻoili ʻikepili, ʻenehana hiʻohiʻona, a me nā mea ʻē aʻe e lawe i ka 80-90% o ka manawa, a me ka nānā ʻana 10-20%, ʻoiai ʻo nā mea hoʻonaʻauao āpau e kālele wale ana i ka nānā ʻana.

E nānā kākou i kahi pilikia analytical maʻalahi ma nā ʻano ʻekolu ma ke ʻano he laʻana maʻamau a ʻike i ke ʻano o nā "kūlana hoʻonāukiuki".

A ma ke ʻano he laʻana, e noʻonoʻo mākou i nā ʻano like ʻole o ka hana o ka ʻohi ʻana i ka ʻikepili a me ka hoʻohālikelike ʻana i nā kaiāulu no:

  1. ʻElua Reddit subreddits
  2. Elua pauku o Habr
  3. ʻElua mau pūʻulu o Odnoklassniki

Kūlana kūlana ma ke kumumanaʻo

E wehe i ka pūnaewele a heluhelu i nā hiʻohiʻona, inā maopopo, e hoʻokaʻawale i kekahi mau hola no ka heluhelu ʻana, i kekahi mau hola no ke code me ka hoʻohana ʻana i nā hiʻohiʻona a me ka debugging. Hoʻohui i kekahi mau hola no ka hōʻiliʻili. Kiola i loko o kekahi mau hola i hoʻopaʻa ʻia (e hoʻonui i ʻelua a hoʻohui i nā hola N).

Manaʻo Koʻikoʻi: Hoʻokumu ʻia nā kuhi manawa ma nā manaʻo a me nā kuhi e pili ana i ka lōʻihi.

Pono e hoʻomaka i ka nānā ʻana i ka manawa ma ke koho ʻana i nā ʻāpana aʻe no ka pilikia kūlana i wehewehe ʻia ma luna.

  • He aha ka nui o ka ʻikepili a me ka nui o ia mea e pono e hōʻiliʻili kino ʻia (*e ʻike ma lalo *).
  • He aha ka manawa hōʻiliʻili no hoʻokahi moʻolelo a pehea ka lōʻihi āu e kali ai ma mua o ka hiki ke ʻohi i ka lua?
  • E noʻonoʻo e kākau i ke code e mālama ai i ka mokuʻāina a hoʻomaka hou i ka wā (ʻaʻole inā) pau nā mea a pau.
  • E noʻonoʻo inā pono mākou i ka ʻae a hoʻonohonoho i ka manawa no ka loaʻa ʻana ma o ka API.
  • E hoʻonoho i ka helu o nā hewa ma ke ʻano he hana o ka paʻakikī ʻikepili - loiloi no kahi hana kikoʻī: ka hoʻolālā, ehia mau hoʻololi, pehea a pehea e unuhi ai.
  • Hoʻoponopono i nā hewa pūnaewele a me nā pilikia me ka hana papahana maʻamau ʻole.
  • E noʻonoʻo inā aia nā hana i koi ʻia i loko o ka palapala a inā ʻaʻole, pehea a pehea ka nui e pono ai no kahi workaround.

ʻO ka mea nui loa, ʻo ia ke koho ʻana i ka manawa - pono ʻoe e hoʻolilo i ka manawa a me ka hoʻoikaika ʻana i ka "reconnaissance in force" - a laila lawa kāu hoʻolālā. No laila, no ka nui o kou koi ʻia e ʻōlelo "pehea ka lōʻihi o ka hōʻiliʻili ʻana i ka ʻikepili" - kūʻai iā ʻoe iho i kahi manawa no ka loiloi mua a hoʻopaʻapaʻa i ka nui o ka manawa e hoʻololi ʻia ma muli o nā palena maoli o ka pilikia.

A i kēia manawa e hōʻike mākou i nā hiʻohiʻona kikoʻī kahi e loli ai kēlā mau ʻāpana.

Manaʻo Koʻikoʻi: Hoʻokumu ʻia ka manaʻo hoʻohālikelike i ka nānā ʻana i nā kumu koʻikoʻi e pili ana i ka laulā a me ka paʻakikī o ka hana.

He ala maikaʻi ka manaʻo hoʻohālikelike i ka wā liʻiliʻi nā mea hana a ʻaʻole nui nā kumu e hiki ke hoʻololi nui i ka hoʻolālā ʻana o ka pilikia. Akā i ka hihia o nā pilikia ʻepekema Data, lilo ia mau mea i mea nui loa a ʻaʻole lawa kēlā ʻano hana.

Hoʻohālikelike o nā kaiāulu Reddit

E hoʻomaka kākou me ka hihia maʻalahi (e like me ka mea ma hope). Ma ka laulā, e ʻoiaʻiʻo loa, loaʻa iā mākou kahi hihia kūpono loa, e nānā i kā mākou papa inoa paʻakikī:

  • Aia kahi API maʻemaʻe, maopopo a palapala.
  • He mea maʻalahi loa a ʻo ka mea nui loa, loaʻa maʻalahi kahi hōʻailona.
  • he nui na wahī python - me nā laʻana he nui.
  • He kaiāulu e kālailai a hōʻiliʻili i ka ʻikepili ma reddit (a hiki i nā wikiō YouTube e wehewehe ana i ka hoʻohana ʻana i ka python wrapper) ʻo kahi laʻana.
  • Loaʻa nā ala e pono ai mākou i ka API. Eia kekahi, ʻike paʻa a maʻemaʻe ke code, aia ma lalo kahi hiʻohiʻona o kahi hana e hōʻiliʻili i nā manaʻo ma kahi pou.

def get_comments(submission_id):
    reddit = Reddit(check_for_updates=False, user_agent=AGENT)
    submission = reddit.submission(id=submission_id)
    more_comments = submission.comments.replace_more()
    if more_comments:
        skipped_comments = sum(x.count for x in more_comments)
        logger.debug('Skipped %d MoreComments (%d comments)',
                     len(more_comments), skipped_comments)
    return submission.comments.list()

Lawe ʻia mai kēia kahi koho o nā pono kūpono no ka ʻōwili ʻana.

ʻOiai ʻo ia ka hihia maikaʻi loa, pono e noʻonoʻo i kekahi mau mea koʻikoʻi mai ke ola maoli:

  • Nā palena API - koi ʻia mākou e lawe i ka ʻikepili i nā pūʻulu (moe ma waena o nā noi, etc.).
  • ʻO ka manawa hōʻiliʻili - no ka loiloi piha a me ka hoʻohālikelike ʻana, pono ʻoe e hoʻokaʻawale i ka manawa nui no ka spider e hele i loko o ka subreddit.
  • Pono e holo ka bot ma kahi kikowaena—ʻaʻole hiki iā ʻoe ke holo wale ma kāu kamepiula, hoʻokomo i loko o kāu ʻeke, a hele i kāu ʻoihana. No laila holo wau i nā mea āpau ma kahi VPS. Ke hoʻohana nei i ka code promotional habhabr10 hiki iā ʻoe ke mālama i kahi 10% o ke kumukūʻai.
  • ʻO ka hiki ʻole o ke kino o kekahi mau ʻikepili (ʻike ʻia lākou e nā luna hoʻomalu a paʻakikī paha e hōʻiliʻili) - pono e noʻonoʻo ʻia kēia; ma ke kumu, ʻaʻole hiki ke hōʻiliʻili ʻia nā ʻikepili āpau i ka manawa kūpono.
  • Nā hewa pūnaewele: He mea ʻeha ka hoʻopaʻa ʻana.
  • He ʻikepili maoli kēia - ʻaʻole maʻemaʻe.

ʻOiaʻiʻo, pono e hoʻokomo i kēia mau nuances i ka hoʻomohala ʻana. ʻO nā hola/lā kikoʻī e pili ana i ka ʻike hoʻomohala a i ʻole ka ʻike e hana ana i nā hana like, akā naʻe, ʻike mākou aia ka hana maʻemaʻe ʻenehana a ʻaʻole koi i nā neʻe kino hou e hoʻoponopono - hiki ke loiloi maikaʻi ʻia nā mea āpau, hoʻonohonoho ʻia a hana ʻia.

Ka hoohalike ana o na pauku Habr

E neʻe kāua i kahi hihia hoihoi a me ka ʻole o ka hoʻohālikelike ʻana i nā pae a/a i ʻole nā ​​ʻāpana o Habr.

E nānā kāua i kā mākou papa inoa paʻakikī - ma ʻaneʻi, no ka hoʻomaopopo ʻana i kēlā me kēia kikoʻī, pono ʻoe e ʻeli iki i ka hana ponoʻī a hoʻokolohua.

  • I ka wā mua, manaʻo ʻoe aia kahi API, akā ʻaʻole. ʻAe, ʻae, loaʻa iā Habr kahi API, akā ʻaʻole hiki ke loaʻa i nā mea hoʻohana (a i ʻole ʻaʻole hana ʻole).
  • A laila hoʻomaka ʻoe i ka parsing html - "nā noi hoʻokomo", he aha ka hewa?
  • Pehea e paʻi ai? ʻO ke ala maʻalahi a maʻalahi hoʻi i hoʻohana pinepine ʻia ʻo ka hoʻololi ʻana ma luna o nā ID, e hoʻomaopopo ʻaʻole ʻo ia ka mea ʻoi aku ka maikaʻi a pono e mālama i nā hihia like ʻole - eia kahi hiʻohiʻona o ka nui o nā ID maoli i waena o nā mea āpau.

    He aha ka hewa me ka ʻepekema Data? ʻOhi ʻikepili
    Lawe ʻia mai kēia ʻatikala.

  • ʻO ka ʻikepili maka i kāʻei ʻia i HTML ma luna o ka pūnaewele he mea ʻeha. No ka laʻana, makemake ʻoe e hōʻiliʻili a mālama i ka helu o kahi ʻatikala: ua haehae ʻoe i ka helu mai ka html a ua hoʻoholo ʻoe e mālama iā ia ma ke ʻano he helu no ka hana hou ʻana: 

    1) int(score) hoʻolei i kahi hewa: no ka mea, aia ma Habré kahi hapa, e like me ka laʻana, ma ka laina "-5" - he en dash kēia, ʻaʻole kahi hōʻailona hōʻemi (me ka manaʻo ʻole, pololei?), pēlā ma i kekahi manawa pono wau e hoʻāla i ka parser i ke ola me kahi hoʻoponopono weliweli.

    try:
          score_txt = post.find(class_="score").text.replace(u"–","-").replace(u"+","+")
          score = int(score_txt)
          if check_date(date):
            post_score += score
    

    ʻAʻohe lā, hoʻohui a me nā mea liʻiliʻi (e like me kā mākou e ʻike ai ma luna o ka hana check_date, ua hana kēia).

    2) ʻAʻole i pakele i nā mea kūikawā - e hele mai lākou, pono ʻoe e mākaukau.

    3) Hoʻololi ke ʻano ma muli o ke ʻano o ka pou.

    4) He ʻano ʻano ʻano ʻano paha nā pou kahiko.

  • ʻO ka mea nui, pono e mālama ʻia ka hana hewa a me nā mea e hiki mai ana a ʻaʻole hiki iā ʻoe ke wānana maopopo i ka mea e hewa ai a pehea e hiki ai ke kūkulu ʻia a me ka mea e hāʻule i kahi - pono ʻoe e hoʻāʻo a noʻonoʻo. nā hewa i hoʻolei ʻia e ka parser.
  • A laila ʻike ʻoe pono ʻoe e hoʻokaʻawale i nā kaula he nui, inā ʻaʻole e hoʻopaʻa ʻia i hoʻokahi a laila e 30+ mau hola (ʻo ia ka manawa hoʻokō o kahi parser hoʻokahi-threaded e hana nei, e hiamoe ana a ʻaʻole e hāʻule i lalo o nā pāpā). IN kēia ʻatikala, ua alakaʻi kēia i kekahi manawa i kahi papahana like:

He aha ka hewa me ka ʻepekema Data? ʻOhi ʻikepili

Ka helu helu helu ma ka paʻakikī:

  • Ke hana nei me ka pūnaewele a me ka html parsing me ka ʻike a me ka huli ʻana ma ka ID.
  • Nā palapala o ka ʻano like ʻole.
  • Nui nā wahi e hāʻule maʻalahi ai ke code.
  • Pono e kakau || code.
  • Nalo nā palapala pono, nā laʻana code, a/a i ʻole kaiāulu.

ʻO ka manawa i manaʻo ʻia no kēia hana he 3-5 mau manawa kiʻekiʻe ma mua o ka hōʻiliʻili ʻana i ka ʻikepili mai Reddit.

Hoʻohālikelike o nā hui Odnoklassniki

E neʻe kākou i ka hihia hoihoi loa i wehewehe ʻia. Noʻu, he mea hoihoi loa ia no ka mea i ka nānā mua ʻana, he mea liʻiliʻi loa ia, akā ʻaʻole ia e like me ke ʻano - i ka wā e paʻi ai ʻoe i kahi lāʻau.

E hoʻomaka me kā mākou papa inoa paʻakikī a e hoʻomaopopo i ka nui o lākou e lilo i ʻoi aku ka paʻakikī ma mua o kā lākou nānā mua ʻana:

  • Aia kahi API, akā aneane nele i nā hana pono.
  • No kekahi mau hana pono ʻoe e noi i ke komo ʻana ma ka leka uila, ʻo ia hoʻi, ʻaʻole hikiwawe ka hāʻawi ʻana i ke komo.
  • Hoʻopaʻa paʻa ʻia (e hoʻomaka me ka hui ʻana o nā huaʻōlelo Lūkini a me ka ʻōlelo Pelekania ma nā wahi āpau, a me ka like ʻole - i kekahi manawa pono ʻoe e koho i ka mea a lākou e makemake ai iā ʻoe ma kahi) a, ʻoi aku, ʻaʻole kūpono ka hoʻolālā no ka loaʻa ʻana o ka ʻikepili, no ka laʻana. , ka hana a mākou e pono ai.
  • Pono i kahi kau i loko o ka palapala, akā ʻaʻole hoʻohana maoli ia - a ʻaʻohe ala e hoʻomaopopo ai i nā paʻakikī āpau o nā ʻano API ma waho o ka poking a puni a me ka manaʻolana e hana kekahi mea.
  • ʻAʻohe laʻana a ʻaʻohe kaiāulu; ʻo ke kumu o ke kākoʻo i ka ʻohi ʻana i ka ʻike he mea liʻiliʻi e hoʻopili ma Python (me ka ʻole o nā hiʻohiʻona o ka hoʻohana ʻana).
  • ʻO Selenium ka mea i hiki ke koho ʻia, no ka mea, ua paʻa ka nui o nā ʻikepili pono.
    1) ʻO ia hoʻi, loaʻa ka mana ma o ka mea hoʻohana fictitious (a me ka hoʻopaʻa inoa ʻana ma ka lima).

    2) Eia naʻe, me Selenium ʻaʻohe mea hōʻoia no ka hana pololei a hiki ke hana hou ʻia (ma ka liʻiliʻi loa ma ka hihia o ok.ru no ka maopopo).

    3) Aia i loko o ka pūnaewele Ok.ru nā hewa JavaScript a i kekahi manawa he ʻano ʻē a ʻano like ʻole.

    4) Pono ʻoe e hana i ka pagination, hoʻouka i nā mea, etc.

    5) Pono e mālama pono ʻia nā hewa API i hāʻawi ʻia e ka mea wahī, no ka laʻana, e like me kēia (kahi ʻāpana code hoʻokolohua):

    def get_comments(args, context, discussions):
        pause = 1
        if args.extract_comments:
            all_comments = set()
    #makes sense to keep track of already processed discussions
            for discussion in tqdm(discussions): 
                try:
                    comments = get_comments_from_discussion_via_api(context, discussion)
                except odnoklassniki.api.OdnoklassnikiError as e:
                    if "NOT_FOUND" in str(e):
                        comments = set()
                    else:
                        print(e)
                        bp()
                        pass
                all_comments |= comments
                time.sleep(pause)
            return all_comments
    

    ʻO kaʻu hewa punahele:

    OdnoklassnikiError("Error(code: 'None', description: 'HTTP error', method: 'discussions.getComments', params: …)”)

    6) ʻO ka hope loa, ua like ʻo Selenium + API i ke koho kūpono loa.

  • Pono e mālama i ka moku'āina a hoʻomaka hou i ka ʻōnaehana, mālama i nā hewa he nui, me ka ʻano like ʻole o ka pūnaewele - a paʻakikī kēia mau hewa e noʻonoʻo (koe ke kākau ʻoe i nā parsers me ka ʻoihana, ʻoiaʻiʻo).

ʻO ka manaʻo kuhi manawa kūlana no kēia hana he 3-5 mau manawa kiʻekiʻe ma mua o ka hōʻiliʻili ʻana i ka ʻikepili mai Habr. ʻOiai ma ka hihia o Habr ke hoʻohana nei mākou i kahi ala mua me ka parsing HTML, a ma ka hihia o OK hiki iā mākou ke hana me ka API ma nā wahi koʻikoʻi.

haʻina

No ka nui o kou koi ʻana e koho i nā palena manawa "ma kahi" (ke hoʻolālā nei mākou i kēia lā!) ʻO kahi modula pipeline hoʻoponopono data voluminous, ʻaʻole hiki ke hoʻohālikelike ʻia ka manawa hoʻokō me ka ʻole o ka nānā ʻana i nā ʻāpana hana.

Ma kahi moʻolelo noʻonoʻo iki, ʻoi aku ka maikaʻi o nā hoʻolālā agile no nā hana ʻenekinia, akā ʻo nā pilikia i ʻoi aku ka hoʻokolohua a, ma ke ʻano, "creative" a me ka ʻimi ʻana, ʻo ia hoʻi, ʻaʻole hiki ke wānana, loaʻa nā pilikia, e like me nā hiʻohiʻona o nā kumuhana like. a makou i kamailio ai maanei.

ʻOiaʻiʻo, ʻo ka hōʻiliʻili ʻikepili he laʻana nui wale nō - he hana maʻalahi a maʻalahi ʻole ka ʻenehana, a ʻo ka diabolo ka mea i nā kikoʻī. A ma kēia hana e hiki ai iā mākou ke hōʻike i ke ʻano holoʻokoʻa o nā koho i hiki ke hele hewa a pehea ka lōʻihi o ka hana.

Inā ʻoe e nānā i nā hiʻohiʻona o ka hana me ka ʻole o nā hoʻokolohua hou aʻe, a laila ʻano like ʻo Reddit a me OK: aia kahi API, kahi python wrapper, akā ma ke ʻano, nui ka ʻokoʻa. Ma ka hoʻoholo ʻana i kēia mau ʻāpana, ʻoi aku ka paʻakikī o nā pā o Habr ma mua o OK - akā ma ka hoʻomaʻamaʻa ʻana he mea kūʻē loa ia, a ʻo ia ka mea e ʻike ʻia ma ka hana ʻana i nā hoʻokolohua maʻalahi e nānā i nā ʻāpana o ka pilikia.

I koʻu ʻike, ʻo ke ala kūpono loa ʻo ka hoʻohālikelike ʻana i ka manawa āu e pono ai no ka loiloi mua ʻana iā ia iho a me nā hoʻokolohua mua maʻalahi, heluhelu i ka palapala - e ʻae kēia iā ʻoe e hāʻawi i kahi kuhi pololei no ka hana holoʻokoʻa. Ma nā ʻōlelo o ke ʻano agile kaulana, ke noi aku nei au iā ʻoe e hana i kahi tiketi no ka "manaʻo ʻana i nā ʻāpana hana", ma ke kumu e hiki ai iaʻu ke hāʻawi i kahi loiloi i nā mea e hiki ke hoʻokō ʻia i loko o ka "sprint" a hāʻawi i kahi kuhi kūpono no kēlā me kēia. hana.

No laila, ʻo ka hoʻopaʻapaʻa maikaʻi loa e like me ka mea e hōʻike i kahi loea "non-technical" i ka nui o ka manawa a me nā kumuwaiwai e ʻokoʻa ma muli o nā ʻāpana ʻaʻole e loiloi ʻia.

He aha ka hewa me ka ʻepekema Data? ʻOhi ʻikepili

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka