所以我试图从一个论坛中抓取一些数据(特别是上一篇文章的DATE),与这个确切的论坛的其他元素一起工作得很好但是日期元素有超级奇怪的类,无论我添加了多少元素,我不能专门定位它只能得到它一次..
这是我的代码段,用于仅获取上一篇文章的日期。
import re
import urllib
import os
from bs4 import BeautifulSoup
from pip._vendor import requests
def make_soup(url):
thepage = urllib.request.urlopen(url)
soupdata = BeautifulSoup(thepage, "html.parser")
return soupdata
soup2 = make_soup('http://forums.automotive.com/69/1052/general-auto-repair/page1.html')
lPostDate = ""
for postDate2 in soup2.findAll('td', {"class": "brdr1 pad10_20 bgrnd19"}):
lPostDate += (postDate2.get_text("\n", strip=True)[0:10] + "\n")
print(lPostDate)
然而,每次都是我的输出:
10/06/15 0
10/06/15 0
137
10/06/15 0
137
49976
10/06/15 0
137
49976
02/04/17 1
10/06/15 0
137
49976
02/04/17 1
1
10/06/15 0
137
49976
02/04/17 1
1
130
10/06/15 0
137
49976
02/04/17 1
1
130
01/30/17 0
10/06/15 0
137
49976
02/04/17 1
1
130
01/30/17 0
0
10/06/15 0
137
49976
02/04/17 1
1
130
01/30/17 0
0
145
这将持续1080线...任何提示将不胜感激。使用" re.compile"与其他论坛一起完成并且这种方法非常好,但是这个论坛在命名它的元素方面更加挑剔。
答案 0 :(得分:2)
for tr in soup2.findAll('tr', id=re.compile('Thread')):
text = tr('td')[2].get_text(strip=True)
date = text.split('By')[0] # strip the By:...
print(date)
出:
10/06/15 05:47 PM
02/04/17 11:58 PM
01/30/17 08:44 PM
01/26/17 12:44 AM
01/22/17 06:25 PM
01/19/17 02:23 PM
01/18/17 10:52 PM
01/18/17 04:57 PM
01/17/17 04:15 PM
01/17/17 04:12 PM
01/14/17 08:34 PM
01/12/17 08:00 PM
01/10/17 02:21 PM
01/10/17 01:00 PM
01/08/17 11:45 PM