Python Webscraping Billboard Top 100 List

时间:2015-09-16 18:52:09

标签: python python-2.7 web-scraping beautifulsoup

这是基于我从Stackoverflow社区收到的慷慨反馈而更新的。我还有一些问题,需要额外的帮助:

我在Windows 10系统上使用iPython笔记本2.7版试图在1992年到2015年间使用维基百科的Billboard Top 100中的表格进行网络搜索。完全披露,这是课程作业但是我没有在学校论坛上获得正确的支持。

以下是我尝试使用的代码:

yearstext = {}
for year in range(1992, 2015, 1):
    url=requests.get("http://en.wikipedia.org/wiki/Billboard_Year-End_Hot_100_singles_of_"+str(year))
    soup = BeautifulSoup(url.text, "html.parser")
    yearstext[year] = soup

这有效(感谢您的帮助)。但是,它只给了我2014年的数据。我需要它来循环这些年并给我一本字典作为它的关键年份(1992年至2014年)以及与这些键相对应的值,提取页面的文本。我需要附加声明吗?我一直在尝试实施一个,但我还没有让它发挥作用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

正如你所说,在清洁功能上进行if-else检查

cleaner = lambda r: [int(r[0].get_text()), r[1].get_text(), r[2].get_text(), r[2].find("a").get("href") if r[2].find("a") else "Couldn't Find A Link"]

if-else的一般语法是(Putting a simple if-then statement on one line

value_when_true if condition else value_when_false