Python:随机打印5个擦除

时间:2017-10-01 14:04:28

标签: python python-2.7 web-scraping beautifulsoup

我有一个学校项目的问题,我说我应该制作一个带有beautifulSoup的刮刀程序,这将是一个除草惊喜,并将打印出他们给我的页面中随机的5个引号....好吧,我来到一个逻辑如何从网站上刮掉数据并且它会刮掉报价,但它并没有返回其中的5个但是所有这些......我试着用柜台但是没有运气可以帮助我吗?

import urllib
from BeautifulSoup import BeautifulSoup


topic_url = 'http://quotes.yourdictionary.com/theme/marriage/'
topic_html = urllib.urlopen(topic_url).read()
topic_soup = BeautifulSoup(topic_html)


quotes = topic_soup.findAll('p', attrs={'class': 'quoteContent'})


for quote in quotes:

    print quote.text + ("\n")

2 个答案:

答案 0 :(得分:1)

您已将所有引号存储在quotes变量中。您可以使用random模块从该集合中选择5个随机的:

import random

five_quotes = random.sample(set(quotes), 5)
for quote in five_quotes:
    print(quote.text + "\n")

答案 1 :(得分:0)

您可以将limit参数设置为5,如下所示

quotes = topic_soup.findAll('p', limit=5, attrs={'class': 'quoteContent'})