4.爬取豆瓣信息(1)

发布日期:2020-12-26 作者:admin 来源:网络

    实战内容:获取豆瓣TOP250电影的中英文名、港台名、导演、上映年份、电影分类以及评分,将数据存放到数据库和文件中。链接为:https://movie.douban.com/top250?start=。

    1. 数据爬取

        爬取网页数据的方式我们在前面介绍过多种,下面来进行数据的爬取。

import re
import requests
from bs4 import BeautifulSoup
for i in range(0,2):
    headers = {#这里模拟浏览器进行访问
        'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) 
        AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',
        'Host': 'movie.douban.com'
    }
    res = 'https://movie.douban.com/top250?start='+str(25*i)#25次
    r = requests.get(res, headers=headers, timeout=10)#设置超时时间
    soup = BeautifulSoup(r.text, "html.parser")#设置解析方式,也可以
    print(soup)

        输出结果为:

<!DOCTYPE html>
<html class="ua-windows ua-webkit">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<meta content="webkit" name="renderer"/>
<meta content="always" name="referrer"/>
<meta content="ok0wCgT20tBBgo9_zat2iAcimtN4Ftf5ccsh092Xeyw" name="google-site-verification">
<title>
豆瓣电影 Top 250
</title>
........
</script>
<!-- dae-web-movie--default-759d9f45f7-b69fc-->
<script>_SPLITTEST=''</script>
</link></link></body>
</html>

    2.检查数据

        这里我们使用Python中的hashlib模块中的mad5()函数,检查代码如下,如果大家是刚刚爬取到的数据,可以省略这一步。

        MD5为计算机安全领域常用的一种加密算法。

import hashlib
def vertifyupdate(html):
    md5 = hashlib.md5()
    md5.update(html.encode(encoding = 'utf-8'))
    md5code = md5.hexdigest()
    print(md5code)
    old_html = ''
    htlm_name = 'gp.txt'
    if os.path.exists(htlm_name):
        with open(htlm_name,'r',encoding='utf-8') as f:
            old_html = f.read()
    if md5code == old_html:
        print('数据未更新')
        return False
    else:
        with open(htlm_name,'w',encoding='utf-8') as f:
            f.write(md5code)
        print('数据更新了')
        return True

        这个函数需要导入hashlib模块,然后创建一个md5的对象,把当前页面的信息传入,通过使用updata()方法对传入的数据进行MD5运算。

        然后使用if语句判断文件是否存在,如果存在就读取其中的MD5码,再通过判断两次的MD5码是否相同,如果一样就表示没有更新,反之则进行了更新,把新的MD5码传到文件中。

    3. 总结

        爬取数据是我们要做的第一步,如果数据存放了很久再进行使用则需要进行检测,这都是相对简单的步骤,比较麻烦的就在于如何去获取到更精准的数据,下一节我们来数据分析。

关键词 :
帝国模板网版权所有