Project 2 :Python爬虫源码实现抓取豆瓣电影爱情电影Top200并保存到文件

基于python3.6—pycharm编写的,都已经调试过了,欢迎大家提出交流意见。

关于一些基础的数据网页分析(比如为什么是这个url)没有过多赘述,看不懂的自行百度。

源码可以直接拷贝运行。

转载请注明来源。




import re
import requests

'''
Python抓取豆瓣爱情电影排行Top200
1、payload构建url
2、get方式打开url
3、re.findall正则表达式提取数据

'''
def main():
    url = "https://movie.douban.com/j/chart/top_list?type=13&interval_id=100%3A90"
    headers = {
        'Host':'movie.douban.com',
        'Referer':'https://movie.douban.com/',
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
        } #模拟浏览器访问,防止服务器封IP
    payload = {'action':'','start':'0','limit':'20'} #构建url传递字典
    file = open('douban.txt', 'w', encoding='utf-8') #打开写入文件

    for k in range(0,10):
        payload['start'] = k * 20 #构建url变量
        resp = requests.get(url,params=payload,headers=headers) #生成url并回传结果
        resp.encoding = 'utf-8' #设置编码

        #正则表达式生成电影信息
        Name = re.findall(r'"title":"([^"]+)"', resp.text, re.I) #电影名字
        Score = re.findall(r'"score":"([^"]+)"', resp.text, re.I) #电影评分
        Date = re.findall(r'release_date":"([^"]+)"', resp.text, re.I) #上映日期
        Rank = re.findall(r'rank":([^"]+)', resp.text, re.I) #豆瓣排名

        x = len(Name)  # 每一页包含电影的数量

        for i in range(0, x):  # 把列表的数据保存到文件中
            file.write('豆瓣排名:' + Rank[i].strip(',')  + '\n' + '名称:' + Name[i] + '\n' + '上映时间:' + Date[i] + '\n' + '评分:' + Score[i] + '\n' + '\n\n')
            print("正在加载第", k*20+i+1, "部")
    file.close()

if __name__ == '__main__':
    main()


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值