2017-09-05 35 views
0

多分あなたは私に助言を与えることができますか?エラー:範囲外のタプルのインデックスpython 3

私は、Webページclarity-project.info/tenders/…を持っていると私はdata-id="<some number>"を抽出し、ここで新しいファイルに

それらを記述する必要があるが、私のコードです:

from urllib.request import urlopen, Request 
from bs4 import BeautifulSoup 
import numpy as np 
url = 'https://clarity-project.info/tenders/?entiy=38163425&offset=100' 
agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3)AppleWebKit/537.36\ 
(KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36' 

request = Request(url, headers={'User-Agent': agent}) 

html = urlopen(request).read().decode() 

soup = BeautifulSoup(html, 'html.parser') 

tags = soup.findAll(lambda tag: tag.get('data-id', None) is not None) 
with open('/Users/tinasosiak/Documents/number.txt', 'a') as f: 
    for tag in tags: 
     print(tag['data-id']) 
     np.savetxt(f, 'data-id') 

しかし、私は自分のコードを実行すると、私はこのエラーを取得します:

1f1d2745f1b641c6bd6831288b49d54e 
--------------------------------------------------------------------------- 
IndexError        Traceback (most recent call last) 
<ipython-input-5-556a89a7507f> in <module>() 
    15  for tag in tags: 
    16   print(tag['data-id']) 
---> 17   np.savetxt(f, 'data-id') 
    18 

/Users/tinasosiak/anaconda/lib/python3.6/site-packages/numpy/lib/npyio.py in savetxt(fname, X, fmt, delimiter, newline, header, footer, comments) 
    1212     ncol = len(X.dtype.descr) 
    1213   else: 
-> 1214    ncol = X.shape[1] 
    1215 
    1216   iscomplex_X = np.iscomplexobj(X) 

IndexError: tuple index out of range 
+1

あなたは、少なくともsaveを呼び出すとき、あなたは '' np.savetxt(F、タグ[「データ-IDを」])を意味しなかった、あなたのタグ要素に言及していない - それはあなたが印刷しているものだから上記? – MatsLindh

+2

そしてなぜnumpyを使ってテキストをファイルに保存するのですか? –

+0

ファイルに書き込むのにnumpyを使うのは良い考えではありません。 – MrPyCharm

答えて

0

これはあなたが望むものですか?これらのデータが書き込まれたテキストファイルを使用して、「データID」のすべての値を取得します。

import requests 
from bs4 import BeautifulSoup 

file = open("testfile.txt","w") 

res = requests.get('https://clarity-project.info/tenders/?entiy=38163425&offset=100').text 
soup = BeautifulSoup(res,"lxml") 
for item in soup.find_all(class_="table-row"): 
    try: 
     file.write(item.get('data-id')+'\n') 
    except: 
     continue 
    print(item.get('data-id')) 
file.close() 
+0

@kristinaSos、コードを実行しましたか? – SIM

+0

@ Sharin私は非常に良いコードとプログラムの仕事を実行しました。ありがとうございました))))) – kristinaSos

関連する問題