Actions

« Mathias » : différence entre les versions

De Design numérique

MathiasR (discussion | contributions)
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 9 : Ligne 9 :
import ssl
import ssl


def getHtmlElements(url, selecteurCss):
 
 
def getSrc(url):
     #1. télécharger la source html de la page url
     #1. télécharger la source html de la page url
     browser = mechanize.Browser()
     browser = mechanize.Browser()
Ligne 27 : Ligne 29 :
     source = data.read()
     source = data.read()
     html = lxml.html.fromstring(source)
     html = lxml.html.fromstring(source)
    return html


def getHtmlElements(html, selecteurCss):
   
     #3. viser l'information qui nous intéresse
     #3. viser l'information qui nous intéresse
   
   
Ligne 46 : Ligne 49 :
     #print(resultats)
     #print(resultats)


goodLinks = []


links = getHtmlElements('https://www.lostmediawiki.com/Article_listing', "h3 .mw-headline a")


for link in links:
    goodLinks.append("https://www.lostmediawiki.com"+link.get('href'))
articles = []
#print(goodLinks)


for goodLink in goodLinks:
    articleLinks = getHtmlElements(goodLink, '.mw-parser-output ul li a')
    for articleLink in articleLinks:
        articles.append("https://www.lostmediawiki.com"+articleLink.get('href'))


print(articles)
siteUrl = 'https://www.lostmediawiki.com'
print(len(articles))
start = True
 
articlesLinks = []
 
 
 
 
 
nextUrl = 'https://www.lostmediawiki.com/index.php?title=Category:Completely_lost_media'
 
 
while nextUrl != False:
    print('######NEXT PAGE!############')
    print('#GOING TO'+nextUrl)
 
    src = getSrc(nextUrl)
    nextUrl = False
 
    articlesLinksTags = getHtmlElements(src, ".mw-category-group a")
 
    for articleLinkTag in articlesLinksTags:
        #print(siteUrl+articleLinkTag.get('href'))
        articlesLinks.append(siteUrl+articleLinkTag.get('href'))
 
 
 
    nextPrevLinksTags = getHtmlElements(src, '#mw-pages > a')
 
    for nextPrevLinkTag in nextPrevLinksTags:
        print(nextPrevLinkTag.text_content())
        if nextPrevLinkTag.text_content() == 'next page':
            nextUrl = siteUrl+nextPrevLinkTag.get('href')
            break
 
 
print(articlesLinks)
</syntaxhighlight >
</syntaxhighlight >

Version du 16 décembre 2022 à 13:17

#la librairie qui permet de se connecter au site
import mechanize
#la librairie qui permet d'analyser la structure html
import lxml.html
#la librairie qui permet de sélectionner une info dans la structure html
import cssselect

import ssl



def getSrc(url):
    #1. télécharger la source html de la page url
    browser = mechanize.Browser()
    browser.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
    browser.set_handle_robots(False)
 
    #problème https
    browser.set_ca_data(context=ssl._create_unverified_context(cert_reqs=ssl.CERT_NONE))
 
    data = browser.open(url, timeout=10)
 
    '''with open("output.txt", 'w') as f:
        f.write(str(data.read()))'''
 
 
    #2. analyser la source et la transformer en structure html navigable
    source = data.read()
    html = lxml.html.fromstring(source)
    return html

def getHtmlElements(html, selecteurCss):
    
    #3. viser l'information qui nous intéresse
 
    #convertir mon sélecteur css en objet cssselect
    selecteurs = cssselect.parse(selecteurCss)
        #0
    #[objet cssselect]
 
    selecteur = selecteurs[0]
 
    chemin_xpath = cssselect.HTMLTranslator().selector_to_xpath(selecteur)
 
    resultats = html.xpath(chemin_xpath)
 
    return resultats
    #print(resultats)





siteUrl = 'https://www.lostmediawiki.com'
start = True

articlesLinks = []





nextUrl = 'https://www.lostmediawiki.com/index.php?title=Category:Completely_lost_media'


while nextUrl != False:
    print('######NEXT PAGE!############')
    print('#GOING TO'+nextUrl)

    src = getSrc(nextUrl)
    nextUrl = False

    articlesLinksTags = getHtmlElements(src, ".mw-category-group a")

    for articleLinkTag in articlesLinksTags:
        #print(siteUrl+articleLinkTag.get('href'))
        articlesLinks.append(siteUrl+articleLinkTag.get('href'))



    nextPrevLinksTags = getHtmlElements(src, '#mw-pages > a')

    for nextPrevLinkTag in nextPrevLinksTags:
        print(nextPrevLinkTag.text_content())
        if nextPrevLinkTag.text_content() == 'next page':
            nextUrl = siteUrl+nextPrevLinkTag.get('href')
            break


print(articlesLinks)