我有一系列類似於「2014年12月27日星期六」的字符串,我想折騰「週六」並將名稱保存爲「141227」這是年+月+日。到目前爲止,除了我無法獲得daypos或yearpos的正則表達式的工作外,所有的工作都在進行。他們都給出了同樣的錯誤:在BeautifulSoup中使用正則表達式來解析Python中的字符串
Traceback (most recent call last): File "scrapewaybackblog.py", line 17, in daypos = byline.find(re.compile("[A-Z][a-z]*\s")) TypeError: expected a character buffer object
什麼是字符緩衝區對象?這是否意味着我的表情出了問題?這是我的腳本:
for i in xrange(3, 1, -1):
page = urllib2.urlopen("http://web.archive.org/web/20090204221349/http://www.americansforprosperity.org/nationalblog?page={}".format(i))
soup = BeautifulSoup(page.read())
snippet = soup.find_all('div', attrs={'class': 'blog-box'})
for div in snippet:
byline = div.find('div', attrs={'class': 'date'}).text.encode('utf-8')
text = div.find('div', attrs={'class': 'right-box'}).text.encode('utf-8')
monthpos = byline.find(",")
daypos = byline.find(re.compile("[A-Z][a-z]*\s"))
yearpos = byline.find(re.compile("[A-Z][a-z]*\D\d*\w*\s"))
endpos = monthpos + len(byline)
month = byline[monthpos+1:daypos]
day = byline[daypos+0:yearpos]
year = byline[yearpos+2:endpos]
output_files_pathname = 'Data/' # path where output will go
new_filename = year + month + day + ".txt"
outfile = open(output_files_pathname + new_filename,'w')
outfile.write(date)
outfile.write("\n")
outfile.write(text)
outfile.close()
print "finished another url from page {}".format(i)
我還沒有想出如何使12月= 12但這是另一次。請幫助我找到合適的職位。
你是真棒!謝謝。 –