0

私はbs4、pythonによって生成された次の構造を持っています。

['Y10765227', '9884877926, 9283183326', '', 'Dealer', 'Rgmuthu']
['L10038779', '9551154555', ',', ',']
['R10831945', '9150000747, 9282109134, 9043728565', ',', ',']
['B10750123', '9952946340', '', 'Dealer', 'Bala']
['R10763559', '9841280752, 9884797013', '', 'Dealer', 'Senthil']

文字をはぎ取りたいので、次のようなものを取得する必要があります

9884877926, 9283183326, Dealer, Rgmuthu
9551154555
9150000747, 9282109134, 9043728565
9952946340 , Dealer, Bala
9841280752, 9884797013, Dealer, Senthil

私は使っている print re.findall("'([a-zA-Z0-9,\s]*)'", eachproperty['onclick'])

基本的には、「[]」と「''」と「,」、および先頭にあるランダムIDを削除したいと思います。

アップデート

onclick="try{appendPropertyPosition(this,'Y10765227','9884877926, 9283183326','','Dealer','Rgmuthu');jsb9onUnloadTracking();jsevt.stopBubble(event);}catch(e){};"

したがって、この onclick 属性からスクレイピングして、上記のデータを取得しています。

4

1 に答える 1

2

ここでstr.joinとの組み合わせを使用できます。str.translate

>>> from string import punctuation, whitespace
>>> lis = [['Y10765227', '9884877926, 9283183326', '', 'Dealer', 'Rgmuthu'],
['L10038779', '9551154555', ',', ','],['R10831945', '9150000747, 9282109134, 9043728565', ',', ','],
['B10750123', '9952946340', '', 'Dealer', 'Bala'],
['R10763559', '9841280752, 9884797013', '', 'Dealer', 'Senthil']]
for item in lis:
    print ", ".join(x for x in item[1:] 
                                 if x.translate(None, punctuation + whitespace))
...     
9884877926, 9283183326, Dealer, Rgmuthu
9551154555
9150000747, 9282109134, 9043728565
9952946340, Dealer, Bala
9841280752, 9884797013, Dealer, Senthil
于 2013-09-04T18:17:52.873 に答える