您当前的位置: 首页 >  Python

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Python应用 | 我喜欢看什么美剧(一)

发布时间:2019-07-29 00:00:00 ,浏览量:0

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

《权利的游戏》、《天赋异禀》等耳熟能详的美剧,面对如此繁多的美剧,此时不禁会问自己,我喜欢看什么美剧呢?

这是一个非常难以回答的问题,原因在于不同的人会有不同的偏好。为了简化问题的求解,我们将尝试用Python语言进行数据分析来回答"我喜欢看什么美剧",先限定下主题就是我自己。

为了搞明白我喜欢看什么美剧,前提是要知道目前有哪些美剧,然后才能在这些美剧中根据条件筛选出我喜欢看的。所以第一件事要做的就是采集基本的数据。

Python实现数据采集需要用到的第三方库有requests和bs4,其中requests用来处理HTTP请求,bs4中的BeautifulSoup用来解析下载的HTML代码从中得到想要的数据。

1. 安装第三方库。

利用包管理软件pip来完成第三方库的安装。

pip install requests	
pip install bs4

2. 利用requests库下载HTML代码。

requsts库是一种非常方便的处理HTTP请求的第三方库,只需要一行代码就可以实现HTML网页的下载。
html = requests.get('https://www.meiju.net/search.php?searchtype=5&tid=2', verify=False).content
代码执行的结果是:

640?wx_fmt=png

打印的就是返回的HTML代码。

3. 利用BeautifulSoup解析HTML。

有了网页的HTML代码接下来就需要从这些代码中提取需要的、有价值的信息,这个工具就是BeautifulSoup来完成。我们将从代码中提取到美剧名称、URL地址以及评分数据。
soup = BeautifulSoup(html, 'html.parser')	
for item in soup.select('div.hy-video-list li > a'):	
    row = edict()	
    row.video_name = item['title']	
    row.video_url = item['href']	
    row.video_type =  i	

	
    score_tag = item.select_one('span.score')	
    if score_tag is not None:	
        row.video_score = score_tag.text	
    	
    print(row)
执行结果为:

640?wx_fmt=png

4. 批处理所有列表。

前面处理的是一页的列表,接下来利用循环处理所有的列表数据。
for i in tqdm(range(1, 112)):	
    url = 'https://www.meiju.net/search.php?page={}&searchtype=5&tid=2'.format(i)	
    soup = BeautifulSoup(requests.get(url, verify=False).content, 'html.parser')	
    for item in soup.select('div.hy-video-list li > a'):	
        row = edict()	
        row.video_name = item['title']	
        row.video_url = item['href']	

	
        score_tag = item.select_one('span.score')	
        if score_tag is not None:	
            row.video_score = score_tag.text	
        	
        print(row)
至此便完成了网站所有美剧数据的采集,总共有美剧数量3972部。

结语

为了搞清楚"我喜欢看什么美剧"这一重大问题,提出了一种利用Python编程语言进行数据分析的方法,本文主要完成了数据分析的第一步数据采集的过程,采集了某网站所有的美剧基本信息,上面的代码可以看到目前这些数据都只是通过简单的print(row)的方式进行打印,并未进行任何数据保存,那么应该如何存储这些数据呢?
预知后事如何,欢迎持续关注。

 where2go 团队

   

微信号:算法与编程之美          

640?wx_fmt=jpeg

一个专注于分享算法思想的公众号!

温馨提示:点击页面下方“留言”发表评论,期待您的参与!期待您的转发!

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.3581s