我试图让BeautifulSoup在课堂上找到所有五个div" blog-box"然后查看每个div中的div并找到该类的div" date"和班级"右框"然后打印那些。我需要它来打印日期,然后立即打印相关文本,这样我才能找到" date"和"右框" div直接。
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'})
print snippet
for div in snippet:
date = soup.find('div', attrs={'class': 'date'})
text = soup.find('div', attrs={'class': 'right-box'})
print date.text
print text.text
但我运行它并打印第一个日期和文本div五次然后停止。
答案 0 :(得分:2)
您似乎不小心在内部循环中使用soup
而不是循环变量div
。尝试:
for ...:
...
for div in snippet:
date = div.find('div', attrs={'class': 'date'}) # <-- changed here
text = div.find('div', attrs={'class': 'right-box'}) # <--changed here
print date.text
print text.text