この範囲のアドレスから日付を取得するには、次のコマンドを入力しますが、複数回実行することはできません。私はPython 3を使用しています。あなたが下に見ることができるように、サイトのURLにはiが付いています。http://zinc.docking.org/substance/10; http://zinc.docking.org/substance/11 ...など。ここでは、コードは次のとおりです。Python組み込みループの場合
import bs4 as bs
import urllib.request
site = "http://zinc.docking.org/substance/"
for i in range(10, 16):
site1 = str("%s%i" % (site, i))
sauce = urllib.request.urlopen(site1).read()
soup = bs.BeautifulSoup(sauce, 'lxml')
table1 = soup.find("table", attrs={"class": "substance-properties"})
for row in table1.findAll('tr'):
row1 = row.findAll('td')
ate = row1[0].getText()
print(ate)
これが私の出力です:
$python3 Date.py
November 11th, 2005
スクリプトがしかし、私に3日を与える必要があります。このコードは動作するので、row [0]には実際に値が入っていることがわかります。何らかの単純な書式設定エラーがあるように感じますが、トラブルシューティングを開始する場所がわかりません。私はそれをフォーマットすると、「正しく」、これはコードです:
import bs4 as bs
import urllib.request
import pandas as pd
import csv
site = "http://zinc.docking.org/substance/"
for i in range(10, 16):
site1 = str("%s%i" % (site, i))
sauce = urllib.request.urlopen(site1).read()
soup = bs.BeautifulSoup(sauce, 'lxml')
table1 = soup.find("table", attrs={"class": "substance-properties"})
table2 = soup.find("table", attrs={"class": "protomers"})
for row in table1.findAll('tr'):
row1 = row.findAll('td')
ate = row1[0].getText()
print(ate)
次のように私が手にエラーがある:
Traceback (most recent call last):
File "Stack.py", line 11, in <module>
ate = row1[1].getText()
IndexError: list index out of range
最初のコードでは、私はその行を知っている作品[0]実際には含まれていません価値。何か案は?
パトリックは、応答をありがとうございましたが(前回の最新の呼び出し)私は、コードを修正し、私はエラー トレースバックとしてこれを得た: 日付で ファイル「Reset.py」、ライン14を、= ROW1 [0 ] .getText() IndexError:リストのインデックスが範囲外です。 –
jcruzer
'' row1'の 'len'を調べるか、' print'してください。 – patrick
上記のコードを投稿してください。私はこのように読むことができません。 – patrick