Regex на двух разных <class>в Python - PullRequest
0 голосов
/ 27 февраля 2020

После осмотра я не смог найти ни одного ответа, соответствующего моей проблеме ...

Дело в том, что я анализирую URL и получаю исходный код, затем я хочу составить список дат, но они в двух разных <class>!

если я сделаю это:

pattern='<h5 class="preparation|soutenue">(.+?(?=</h5>))'

, он вернет только содержимое <class="soutenue"> и пустые значения для <class="preparation">

* У меня есть ie много других шаблонов, но они всегда будут возвращать мне пустой список ...

Если кто-то может помочь, будет очень признателен.

Вот полный код, если вы хочу попробовать это: Python 3,8

# coding: utf8
import requests
import re
import pdb
from os import getcwd #getcwd() donne le repertoire courant ou se situe le script
from os.path import *
import os

#PARSING

#Var chemin du dossier "pages"
test_dossier = (getcwd()+"\\pages")

#Boucle pour parser les 6 pages
x=0
while x<=50:
url= 'http://theses.fr/fr/?q=crypto%20monnaies&start='+str(x)
request_headers={'User-Agent': "(Mozilla/5.0 (Windows; U; Windows NT 6.0;en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6" }

req=requests.get(url,headers=request_headers,timeout=10)
content=req.text
#Verification que le dossier existe sinon le crée
if exists(test_dossier):
    with open('pages/theses'+str(x)+'.txt','w', encoding='utf8') as output:
        output.write(content)
else : 
    os.mkdir(test_dossier)
    with open('pages/theses'+str(x)+'.txt','w', encoding='utf8') as output:
        output.write(content)
x+=10

print("Parsing ok !")

#GET DATAS
tab_dates=[]

for j in range(0,51,10):
    with open('pages/theses'+str(j)+'.txt', 'r',encoding='utf8') as output:
        contenu=output.read()

    pattern='<h5 class="preparation|soutenue">(.+?(?=</h5>))'

    result=re.findall(pattern, contenu)
    tab_dates.append(result)

print(tab_dates)
print("datas ok !")
...