四时宝库

程序员的知识宝库

python使用正则爬取豆瓣电影数据(值得收藏)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
任务:使用正则提取豆瓣电影数据
思路:1、获取html内容文本
     2、准备正则表达式
     3、使用finditet()方法,对html文本一次性提取数据生成可迭代的对象
     4、循环遍历可迭代对象,使用groupdict()方法生成字典
     5、把字典的值valuse写入csv文件。

@author: wangxingchun
"""

import requests
import re
import csv

url = 'https://movie.douban.com/chart'

head = {'user-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'}

sep = requests.get(url,headers=head)

connect = sep.text

#预处理正则表达式
zhze = re.compile(r'<span style="font-size:13px;">(?P<name>.*?)</span>.*?'
                  r'<span class="rating_nums">(?P<nums>.*?)</span>.*?'
                  r'<span class="pl">\((?P<pingjia>.*?)人评价.*?',re.S)

#正式解析网页源码,生成可迭代对象(fniditer)
result = zhze.finditer(connect)



#写模式创建一个csv文件,生成字典逐行写入values
with open('data.csv','w') as f:
    
    #设置csv写入方法
    witers = csv.writer(f)
    

    for it in result:
        #print(it.group('name'))
        #print(it.group('nums'))
        #print(it.group('pingjia'))
    
    
        #生成字典格式
        dic = it.groupdict()
        # print(dic)
        
        #按行写入csv文件
        witers.writerow(dic.values())

print('over')   

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接