2017-05-25 5 views
0

私は以下のコードをすべて書き出しました。ウェブページ&からすべてを追加します。しかし、正規表現を使用せずにコード化したいので、それをどうやって行うか教えてください。 リンク:http://python-data.dr-chuck.net/comments_361585.html正規表現なしのコードを書くには

私のコード:正規表現を使用してして

import urllib 
import re 
from BeautifulSoup import * 

html = urllib.urlopen('http://python-data.dr-chuck.net/comments_361585.html ').read() 

soup = BeautifulSoup(html) 

# Retrieve all of the anchor tags 
tags = soup('td') 

total = 0 
for tag in tags: 
# Look at the parts of a tag 
     line = str(tag) 
     x = re.findall('[0-9]+',line) 
     if len(x) > 0: 
      for item in x: 
       total += int(item) 

print(total) 

私はこれを試してみました:

import urllib 
from BeautifulSoup import * 

url = raw_input('Enter - ') 
html = urllib.urlopen(url).read() 
soup = BeautifulSoup(html) 


tags = soup.find_all('span', text=True) 

for tag in tags: 
     number=tag.get('class', None) 
     total = sum(int(tag.text) for tag in tags) 

print ('total') 

が、それはいくつかのエラーを持つ: 'NoneType' オブジェクトが呼び出すことはできません。

私はそれをどのように修正しますか?

+1

tags = soup.find_all('span', text=True) 

その後、あなたは結果を合計することができます
代わりに正規表現で自分の価値をすべての「TD」を取得し、フィルタの、あなたは「スパン」を検索することができます... –

+0

私はすでにそれをしました。私は第二の方法を知りたい –

答えて

1

正規表現はまったく使用する必要はありませんが、bs4のみで簡単に行うことができます。あなたがあなた自身の宿題をする必要があります

total = sum(int(tag.text) for tag in tags) 
関連する問題