首页 > 其他分享 >004爬虫之获取豆瓣TOP250电影数据

004爬虫之获取豆瓣TOP250电影数据

时间:2022-12-04 13:46:17浏览次数:50  
标签:group item 爬虫 num re 豆瓣 004 TOP250

今天我们继续通过正则表达式解析页面源代码,获取的网页为豆瓣TOP250,具体网址为:https://movie.douban.com/top250

今天的主要思路:

1、获取网页源代码;
2、通过正则表达式解析网页的信息;
3、将获取的内容存到本地文件中。

网页的信息截图:

经过爬取后的数据结果截图:

下面是详细的代码,里面有相关的注释,里面有几个关键的知识点大家可以细细的揣摩一下,比如:for循环,open()、f.write()、re.compile()、re.finditer()、re.S。下面是详细的代码,有什么不懂的可以直接在下面留言。最后建议大家自己敲的时候不要一次性全部敲完,按照上面三步一步一步编写:

# 豆瓣TOP250数据抓取
# 1、抓取豆瓣TOP250电影信息,拿到页面源代码
# 2、通过re解析提取数据
# 3、存储解析的数据
import requests
import re

f = open("TOP250.cvs", mode="w", encoding="utf-8")

for num in range(0, 250, 25): # 循环获取访问地址
    url = f"https://movie.douban.com/top250?start={num}&filter="
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
    }

    resp = requests.get(url, headers=headers)
    resp.encoding = "utf-8"
    pageSource = resp.text

    # 编写正则表达式
    # re.S可以让正则中的.匹配换行符
    obj = re.compile(r'<div class="item">.*?<span class="title">(?P<moviename>.*?)</span>'
                     r'.*?导演: (?P<actor>.*?)&nbsp;.*?'
                     r'<br>(?P<year>.*?)&nbsp;'
                     r'.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>'
                     r'.*?<span>(?P<num>.*?)人评价</span>', re.S)

    # 进行正则表达式
    result = obj.finditer(pageSource);
    for item in result:
        moviename = item.group("moviename")
        actor = item.group("actor")
        year = item.group("year").strip() # 去掉字符串两端的空白
        score = item.group("score")
        num = item.group("num")
        # 将获取的数据存取csv文件中
        f.write(f"{moviename},{actor},{year},{score},{num}\n")

print("豆瓣TOP250提取完毕!")
f.close() # 关闭文件
resp.close() # 关闭响应

标签:group,item,爬虫,num,re,豆瓣,004,TOP250
From: https://www.cnblogs.com/stone-wei/p/16949734.html

相关文章

  • 顺序表-00004-打印顺序表
    顺序表结构定义typedefintseqType; //定义顺序表数据类型//定义顺序表的结构体typedefstructt_sList{ seqType*pbase; //表基址 intcapacity; //表......
  • 爬虫.第二篇
    找到chrome驱动程序chromedriver.exe,点击打开,可以看到驱动的版本号,确认驱动的大版本号与chrome浏览器的大版本号是一致的通过驱动程序启动chromefromseleniumimport......
  • 爬虫-爬动漫
    查看源代码面对这种禁止看页面源码的初级手段,一个优雅的通用解决办法是,在连接前加个view-source:view-source:https://www.dmzj.com/view/yaoshenji/41917.htmlBUT使......
  • 爬虫之xpath插件下载与安装
    目录简介:下载xpath文件打开chrome浏览器点击右上角小圆点更多工具、阔展程序拖拽xpath插件放到阔展程序如果失效,再次拖拽关闭浏览器重新打开按ctrl+shift+x出现......
  • 【Python】【爬虫】爬取豆瓣电影评分
    importrequestsimportreimportcsvurl="https://movie.douban.com/top250"headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537......
  • JAVA网络爬虫
    一、前置背景1、URL定义   统一资源标识符(UniformResourceIdentifier,URL)是采用一种特定语法标识一个资源的字符串。所标识的资源可能是服务器上的一个文件。Java......
  • 获取省市区镇爬虫
     1packagecom.mock.utils;23importjava.io.IOException;4importjava.net.MalformedURLException;5importjava.util.ArrayList;6importjava......
  • 【k哥爬虫普法】爬取数据是否一定构成不正当竞争?
    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的......
  • 【k哥爬虫普法】爬取数据是否一定构成不正当竞争?
    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的......
  • python爬虫为什么很多公司都需要?
    python爬虫在如今大数据时代是越来越重要,却发现,都没有人总结Python爬虫可以用来做什么,从而导致学习Python爬虫的小伙伴略有点迷茫。1、学习爬虫,可以私人订制一个搜索引擎,并......