BeautifulSoupを使用して小さなコードを作成する際に役立つ2つのことができます。BeautifulSoup Pythonで文字列の日付のリストを取得するには
まず、以下のコードで見つかった日付のみを取得できます。 findAll <td>02/02/2011</td>
を入力し、リストに格納します。私の問題は、いくつかのtd
タグがあるため、具体的に日付文字列を取得する方法がわかりません。
第2に、日付のリストが取得された後、私は2つの変数を持ちます。 1つの変数には1つの日付のみが含まれ、もう1つの変数にはすべての日付のリストが含まれます。たとえば、date_lst_single = "<td>01/04/2011</td>"
とdate_lst_all = ["LIST OF ALL DATES"]
です。
最後に、私は日時依存性を使用するFind条件をいくつか作成することができますが、その背後に論理が必要です。この場合、date_lst = <td>02/02/2011</td>
にある日付が何であっても、その前の日付のみを検索したいと思います。たとえば、以下のコードでは、そのような日付の前の日付は<td>01/04/2011</td>
で、日付を取り出して新しい変数に格納します。
<td>10/24/2011</td>,
<td><span class="match">11</span> - <span class="match">12</span> - <span class="match">17</span> - 31 - 33</td>,
<span class="match">11</span>,
<span class="match">12</span>,
<span class="match">17</span>,
<td>8,210</td>,
<td>$10.50</td>,
<tr><td>06/15/2011</td><td>1 - 7 - <span class="match">11</span> - <span class="match">12</span> - <span class="match">17</span></td><td>15,369</td><td>$6.50</td></tr>,
<td>06/15/2011</td>,
<td>1 - 7 - <span class="match">11</span> - <span class="match">12</span> - <span class="match">17</span></td>,
<span class="match">11</span>,
<span class="match">12</span>,
<span class="match">17</span>,
<td>15,369</td>,
<td>$6.50</td>,
<tr class="alt"><td>01/04/2011</td><td><span class="match">11</span> - <span class="match">12</span> - <span class="match">20</span> - 21 - 27</td><td>10,752</td><td>$15.00</td></tr>,
<td>01/04/2011</td>,
<td><span class="match">11</span> - <span class="match">12</span> - <span class="match">20</span> - 21 - 27</td>,
<span class="match">11</span>,
<span class="match">12</span>,
<span class="match">20</span>,
<td>10,752</td>,
<td>$15.00</td>,
<tr><td>09/24/2009</td><td>2 - 3 - <span class="match">11</span> - <span class="match">12</span> - <span class="match">17</span></td><td>11,406</td><td>$7.50</td></tr>,
<td>09/24/2009</td>,
<td>2 - 3 - <span class="match">11</span> - <span class="match">12</span> - <span class="match">17</span></td>,
<span class="match">11</span>,
<span class="match">12</span>,
<span class="match">17</span>,
<td>11,406</td>,
<td>$7.50</td>,
<tr class="alt"><td>08/08/2009</td><td><span class="match">12</span> - <span class="match">20</span> - 26 - 28 - <span class="match">30</span></td><td>10,267</td><td>$11.00</td></tr>,
<td>08/08/2009</td>,
<td><span class="match">12</span> - <span class="match">20</span> - 26 - 28 - <span class="match">30</span></td>,
<span class="match">12</span>,
<span class="match">20</span>,
<span class="match">30</span>,
<td>10,267</td>,
<td>$11.00</td>,
<tr><td>05/05/2009</td><td>8 - <span class="match">11</span> - <span class="match">12</span> - <span class="match">20</span> - 26</td><td>11,260</td><td>$8.00</td></tr>,
<td>05/05/2009</td>,
<td>8 - <span class="match">11</span> - <span class="match">12</span> - <span class="match">20</span> - 26</td>,
<span class="match">11</span>,
<span class="match">12</span>,
<span class="match">20</span>,
<td>11,260</td>,
<td>$8.00</td>,
<tr class="alt"><td>04/07/2009</td><td>10 - <span class="match">11</span> - <span class="match">12</span> - 16 - <span class="match">17</span></td><td>11,163</td><td>$8.50</td></tr>,
<td>04/07/2009</td>,
<td>10 - <span class="match">11</span> - <span class="match">12</span> - 16 - <span class="match">17</span></td>,
<span class="match">11</span>,
<span class="match">12</span>,
<span class="match">17</span>,
<td>11,163</td>,
<td>$8.50</td>,
<tr><td>01/31/2009</td><td>3 - <span class="match">17</span> - <span class="match">20</span> - <span class="match">30</span> - 34</td><td>10,086</td><td>$11.50</td></tr>,
<td>01/31/2009</td>,
<td>3 - <span class="match">17</span> - <span class="match">20</span> - <span class="match">30</span> - 34</td>,
<span class="match">17</span>,
<span class="match">20</span>,
<span class="match">30</span>,
<td>10,086</td>,
<td>$11.50</td>,
<tr class="alt"><td>08/06/2008</td><td>4 - <span class="match">11</span> - <span class="match">12</span> - <span class="match">30</span> - 32</td><td>9,497</td><td>$11.00</td></tr>,
<td>08/06/2008</td>,
<td>4 - <span class="match">11</span> - <span class="match">12</span> - <span class="match">30</span> - 32</td>,
<span class="match">11</span>,
<span class="match">12</span>,
<span class="match">30</span>,
<td>9,497</td>,
<td>$11.00</td>,
UPDATE:場合
これは他の誰かを助けるかもしれない、私が要求したコードの最後の部分は以下の通りです。私はこの投稿で私が受け取った助けに加わった。
#Input date
five_to_date = ['09/01/2016']
def isDate(tag):
if tag.name=='td':
return bool(re.match('\d\d\/\d\d\/\d\d', tag.text))
else:
return False
#store in list
tds_three_five = three_five.find_all(isDate)
dates_three = [p.text for p in tds_three_five]
#target date
dates_three_cnv = [datetime.strptime(x, '%m/%d/%Y').date() for x in
dates_three]
for i in range(1):
_lst_all_threefive = []
for j in dates_three_cnv:
if j < five_to_date:
_lst_all_threefive.append(j)
three_five_to_calc = _lst_all_threefive[0] # we only want one date
#Perform calculation of input date minus target date.
delta = five_to_date - three_five_to_calc
どうもありがとうございました –
あなたが最も歓迎しています。 –