J'ai un script Python qui utilise BS4 pour récupérer le code HTML d'une page Web. Ensuite, je trouve un champ d'en-tête spécifique dans le code HTML pour extraire le texte. Je fais ceci avec ce qui suit:Erreur Python NoneType
r = br.open("http://example.com")
html = r.read()
r.close()
soup = BeautifulSoup(html)
# Get the contents of the html tag (h1) that displays results
searchResult = soup.find("h1").contents[0]
# Get only the number, remove all text
if not(searchResult == None):
searchResultNum = int(re.match(r'\d+', searchResult).group())
else:
searchResultNum = 696969
Le code HTML réel ne change pas. Il semble toujours comme ça:
<div id="resultsCount">
<h1 class="f12">606 Results matched</h1>
</div>
Le problème est, mon script fonctionne très bien pour peut-être 4 minutes (varie) et les accidents avec:
Traceback (most recent call last):
File "C:\Users\Me\Documents\Aptana Studio 3 Workspace\PythonScripts\PythonScripts\setupscript.py", line 109, in <module>
searchResultNum = int(re.match(r'\d+', searchResult).group())
AttributeError: 'NoneType' object has no attribute 'group'
Je pensais que je menais cette erreur. Je suppose que je ne comprends tout simplement pas. Pouvez-vous aider?
Merci.
... la conséquence étant qu'il devrait probablement utiliser 're.search()' au lieu de 're.match()' ... –
à moins qu'il ne veut chiffres au début, son exemple de texte '606 résultats appariés 'implique qu'il le fait. – cmd