【发布时间】:2018-04-28 16:01:49
【问题描述】:
我目前正在尝试清理从 twitter 上抓取的一些数据,但是当我尝试打印出stamp_print 变量(只是一个简单的时间戳。)我不太确定我做错了什么。
import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
import re
my_url = "https://twitter.com/realDonaldTrump?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor"
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
tweets = page_soup.findAll("p",{"class":"TweetTextSize TweetTextSize--normal js-tweet-text tweet-text"})
time_stamp = page_soup.find_all("a",{"class":"tweet-timestamp"})
i = 0
for tweet in tweets:
stamp = time_stamp[i]
stamp_print = stamp.match('[0-9]+\s\w+|[0-9]+\sw+')
print(stamp_print.get_text)
i+=1
print('---------------------------------------------------------------------')
print(tweet.get_text())
print('\n')
【问题讨论】:
-
在
stamp = time_stamp[i]之后尝试print(re.findall(r'\d+\s*\w+', stamp.get_text))。注意stamp没有match方法。 -
确保 stamp_print 不是 None
-
您的正则表达式不会产生您想要的结果。您希望提取时间戳的哪一部分?
标签: regex python-3.x beautifulsoup