首页 > 其他分享 >抓取豆瓣电影TOP250标题-年份-评分-评分人数

抓取豆瓣电影TOP250标题-年份-评分-评分人数

时间:2023-02-28 09:00:09浏览次数:45  
标签:group 评分 text 抓取 dic url print csv TOP250

import csv
import re

import requests

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.56'
}

# 正则
# 需要注意的是这个正则是一层一层的往下写的,不是单独出来的,每一段后面记得要接.*?不然程序会死循环
obj = re.compile(r'<div class="info">.*?<span class="title">.*?(?P<title>.*?)</span>.*?'
                 r'...<br>.*?(?P<year>.*?)&nbsp.*?'
                 r'property="v:average">.*?(?P<score>.*?)</span>.*?'
                 r'<span>(?P<num>.*?)人评价</span>', re.S)

f = open('data.csv', mode='w', encoding='utf-8', newline='')  # newline = ''
#备注:如果没有指定 newline=‘’,则嵌入引号中的换行符将无法正确解析,并且在写入时,使用 \r\n 换行的平台会有多余的 \r 写入。
csvwriter = csv.writer(f)

# 请求前TOP250个电影
# 它的url start是0,25,50最大时250,所以步长25,0开始250结束
for i in range(0, 250, 25):
    url = f'xxx/top250?start={i}'
    print(i)

    # 请求 并返回成text
    resp = requests.get(url=url, headers=headers)
    page_text = resp.text
    # print(page_text)

    result = obj.finditer(page_text)

    for it in result:
        # print(it.group('title'))
        # print(it.group('year').strip())  # 此数据如果不做任何处理会出现前后有很大的空格
        # # strip 去除前后空格 并返回字符串
        # print(it.group('score'))
        # print(it.group('num'))
        dic = it.groupdict()  # 统一返回,返回成字典包装起来
        dic['year'] = dic['year'].strip()  # 老样子,去除前后空格
        # print(dic)
        csvwriter.writerow(dic.values())  # 放到csv文件里

f.close()
resp.close()
print("完成!")

 

标签:group,评分,text,抓取,dic,url,print,csv,TOP250
From: https://www.cnblogs.com/Wesuiliye/p/17162662.html

相关文章

  • iOS开发-应用评分引导
    导入头文件#import<StoreKit/StoreKit.h>+(void)yoStoreReview{if(@available(iOS10.3,*)){if([SKStoreReviewControllerrespondsToSelector:@sele......
  • 如何不顾百度的拦截,抓取百度搜索结果
    如果你使用requests模块去抓取百度搜索结果,你现在是抓取不到的,你只能抓取到【百度安全验证】页。代码:importrequests#导入request包url="https://www.baidu.com/s?......
  • 用几行Python代码轻松抓取任何网站
    如果你正在寻找最强大的Python抓取工具?不要再看了!这一行代码将帮助你立即启动并运行。ScrapeasyScrapeasy是一个Python库,可以轻松抓取网页并从中提取数据。它可用于......
  • 牛逼的绘图方式抓取中文字的点阵编码
     StringbyteToString="";      //将19968到40869的汉字都搞一遍.       for(inti=19968;i<40869;i++){         bytebyte1=(......
  • ES自定义评分机制:function_score查询
    转:https://blog.csdn.net/w1014074794/article/details/1205235501function_score介绍1.1简介主要用于让用户自定义查询相关性得分,实现精细化控制评分的目的。......
  • charles 抓取抓包手机上的信息||基本使用转发到本地域名
    1.手机设置代理,charles获取信息​​查看​​​​苹果收集抓取https​​2.把手机上连接的地址,转发到本地点击DNSSpooring新增baidu.com指向本地在本地通过nginx域名解......
  • Java文章抓取
    @PostMapping("/grab")@ApiOperationSupport(order=9)@ApiOperation(value="抓取",notes="传入grabUrl")publicRgrabe(@ApiParam(value="抓取",required=true......
  • 抓取过后仍出物体
        首先他是使用了我们的刚体组件的作用  首先我们获取到咱们的物体 要确保他身上有刚体 然后 将iskinematic关闭  然后 给一个方向的力  Tran......
  • 内网渗透-winserver2012抓取明文密码
    问题引入:winserver2012使用mimikatz是无法抓取明文密码的,要获取明文密码需要修改其注册表。法一:在未修改注册表的情况下,使用mimikatz来读取密码:privilege::debugseku......
  • 淘宝抓取终于稳定实现了
    淘宝数据爬取一直是一个不疼但很痒的问题。淘宝有网页版,并不像闲鱼、得物之类的只有App端数据呈现。但淘宝又有厉害到不行的风控和反爬算法,总之想拿淘宝数据,想想很容易,做做......