2017-10-11 3 views
0

Je suis un cours pour apprendre Python et j'essaie de faire un peu de racler, mais j'ai quelques difficultés avec mon programme (j'utilise PyCharm):raclant avec BeautifulSoup [Aide]

import urllib2 

from BeautifulSoup import BeautifulSoup 

url = urllib2.urlopen(raw_input("Enter - ")) 

soup = BeautifulSoup(url, "html.parser") 

tags = soup("span") 

total = [] 

for tag in tags: 

    total.append(int(tag)) 

print sum(total) 
print len(total) 

Le problème est quand je exécutez le code, la page que je veux supprimer s'ouvre mais le code ne fonctionne pas c'est-à-dire je n'ai pas la somme et la longueur de ma liste

+0

Quelle est la page que vous essayez de gratter? – mentalita

+0

'tag' est un objet' Tag', vous ne pouvez pas le transformer en int. Vous devriez utiliser 'int (tag.text)' ou un autre attribut. –

+0

Je pense que la soupe ("span") 'est fausse, donc je soupçonne que les étiquettes peuvent être vides. Vous devez vous assurer que le chemin est correct pour obtenir quoi que ce soit en vue d'un traitement ultérieur. – lerner

Répondre

0

Qu'avez-vous voulu dire par "nombres" de nombres? Check it out, si c'est ce que vous vouliez dire:

import requests 
from lxml import html 

response = requests.get("http://py4e-data.dr-chuck.net/comments_35201.html").text 
tree = html.fromstring(response) 
title = [item.text for item in tree.cssselect(".comments")] 
for x in range(len(title)): 
    print("{} {}".format(x+1,title[x])) 

Résultat partiel:

1 97 
2 91 
3 88 
4 87 
5 87 
6 86