2017-04-19 2 views
-1

Webページから複数の数値を取得するためにPythonとBeautifulSoupを併用しようとしています。スクリプトが空の配列を返すので、私は何か間違っていることを知っています。複数のスパンとクラスがあるという事実は私も混乱させます。ここで私が働いているHTMLデータのサンプルは、次のとおりです。BeautifulSoupでPythonを使用して数値を抽出する(複数のスパンとクラス)

<td class="confluenceTd" colspan="1"> 
     <span> 
      Autoworks 
     </span> 
     </td> 
     <td class="confluenceTd" colspan="1"> 
     900009 
     </td> 
     <td class="confluenceTd" colspan="1"> 
     <p> 
      uyi: 3456778, 33344778, 11199087 
     </p> 
     <p> 
      PRY: 54675389 
     </p> 
     </td> 
<td class="confluenceTd" colspan="1"> 
     AutoNone 
     </td> 
     <td class="confluenceTd" colspan="1"> 
     9998887 
     </td> 
     <td class="confluenceTd" colspan="1"> 
     <p> 
      YUN: 232323, 6788889, 78695554 
     </p> 
     <p> 
      IOY: 3444666, 2343233, 1232322 
     </p> 
     </td> 

は、ここに私のPythonコードです:再び

import requests 
from bs4 import BeautifulSoup 

s = requests.Session() 

s.post('https://wiki.example.com/login', data={'user': "user1", 'password': 
'pass1'}) 

r = s.get('https://wiki.example.com/example/section') 

data_payload = r.content 

soup = BeautifulSoup(data_payload, 'html.parser') 
data = soup.findAll("span", {"class":"confluenceTd"}) 

print data    

、私は、実際の数字を引くしようとしています。どんな助けでも大歓迎です。ありがとう。

+0

を引っ張っている、あなたが所属する任意のスパンを持っていませんクラス "confluenceTd"。だからあなたは空リストを取得します。将来の議論のために、他のすべてが質問に関連していないので、コードを最後の3行に縮小することをお勧めします。検証可能な最小限の例を作成することを期待します。 – DyZ

答えて

1

あなたが特定のクラスの使用正規表現/正規表現の下に存在するすべての数字は数字を引くと確認要求をするために取得したい場合は、HTMLコードでHTML

import requests,re 
from bs4 import BeautifulSoup 
s = requests.Session() 
s.post('https://wiki.example.com/login', data={'user':"user1",'password': 'pass1'}) 
r = s.get('https://wiki.example.com/example/section') 
data_payload = r.content 
soup = BeautifulSoup(data_payload, 'html.parser') 
data = soup.findAll("td", {"class":"confluenceTd"}) 
for d in data: 
    m=re.search('([0-9]+)',str(d.findAll(text=True))) 
    if m: 
     print m.group(0) 
関連する問題