爬虫从头学之Requests+正则表达式爬取猫眼电影top100

【Python爬虫】猫眼电影榜单Top100 Python爬虫大作业,本文是根据实验报告修改,内容与实验报告基本一致。【作业2020年11月20号前提交,本文于21号开放】 一、目标 爬取猫眼电影榜单Top100,将数据存入Excel文件中,并利用pyecharts库进行数据可视化得到.html文件和.png文件。 二、内容 主要包括四个阶段:爬取网页全部数据、获取数据并进行处理、数据存储、数据可视化。 1、 爬取网页全部数据 通过requests.get()获得页面数据,使用etree.HTML()将字符串数据转变成_Element对象,并存储在. 阅读详情

爬取思路

当我们想要爬取一个页面的时候,我们要保证思路清晰,爬虫的思路分四个步骤,发起请求,获取响应内容,解析内容,存储内容。根据这四个内容我们的思路就很清晰。以下为具体步骤

  1. 使用requests库爬出单页内容
  2. 根据返回值使用正则表达式分析
  3. 保存至文件
  4. 对目标网站进行循环以及多线程爬取

项目实战部分

  1. 使用requests库爬出单页内容

    爬取url:http://maoyan.com/board/4?

    猫眼对爬虫有一个反爬虫策略,如果请求头没有模仿为浏览器的请求头会出现禁止访问,所以这里我们设置请求头。

    
    # 获取页面
    
    def get_one_page(url):
       # 反爬虫,设置用户请求头
       header = {
           'User-Agent' : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"
       }
       # 得到网页地址的内容
       try:
           response = requests.get(url,headers = header)
           if response.status_code == 200:
               return response.text
           return None
       except RequestException:
           return None
  2. 根据返回值使用正则表达式分析

    上一步,我们通过requests库爬取目标网页的所有内容,可是我们需要的是去除HTML标签后的部分信息,怎么办呢,正则表达式派上用场了。这部分主要是正则表达式的书写,所以学会爬虫,一个重要的点就是正则表达式,使用正则匹配完页面所有的相符合内容后,使用yield生成器对正则匹配到的信息进行处理。

    
    # 解析页面
    
    def parse_one_page(html):
       pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a.*?>(.*?)</a>'
                            '.*?star">(.*?)</p>.*?releasetime">(.*?)</p>.*?integer">(.*?)</i>.*?fraction">'
                            '(.*?)</i>.*?</dd>',re.S)
    
       itmes = re.findall(pattern,html);
       for itme in itmes:
           yield {
               'index': itme[0],
               'image': itme[1],
               'title': itme[2],
               'actor': itme[3].strip()[3:],
               'time': itme[4].strip()[5:],
               'score': itme[5]+itme[6]
           }
       # print(itmes)
  3. 保存至文件

    对目标网页的信息处理完成后,我们就需要将其存储到一个文件中,存储为.txt文件,并将编码格式为utf-8,存储完成后关闭文件。

    
    # 存储数据
    
    def write_to_file(content):
       # a参数代表往后追加
       with open('result.txt','a', encoding= 'utf-8') as f:
           # 一个content代表一个item,后面要换行
           f.write(json.dumps(content, ensure_ascii=False) + '\n')
           f.close()

    我们就可以看到result.txt文件,打开文件我们可以看到爬取的排名。

  4. 对目标网站进行循环以及多线程爬取

    最后就是对网站进行循环爬取了,到目前为止,我们只是爬取一个页面,只有10个数据,我们分析下从第一页到最后一页的地址变化

    http://maoyan.com/board/4?offset=90,我们可以发现offset参数是翻页地址的变化原因,这样我们就可以得到从第一页到最后一页的地址。

    
    # offset设置爬取下一页
    
    def main(offset):
       url = 'http://maoyan.com/board/4?offset=' + str(offset)
       html = get_one_page(url)
       # print(html)
       for item in parse_one_page(html):
           write_to_file(item)
           print(item)
    
    
    # 多线程爬取
    
    if __name__ == '__main__':
    
    #    for i in range(10):
    
    
    #         main(i*10)
    
       pool = Pool()
       pool.map(main,[i*10 for i in range(10)])    

好了,使用requests库+正则表达式爬取猫眼电影top100完成了,其实很简单,只要我们多动手做做,多分析具体网址,基本就可以将我们想爬取的网站爬取。

Python爬虫实战 | (3) 爬取豆瓣电影Top250 在本篇博客中,我们将使用requests+正则表达式来爬取豆瓣电影TOP250电影榜单,获取每部电影的序号、片名、导演、编剧、主演、类型、制作国家/地区、语言、上映日期、片长、又名、豆瓣评分和剧情简介等内容。 打开豆瓣Top250,分析URL的变化:发现Top250榜总共包含10页,每页25部电影,并且每一页的URL都是有规律的,如第2页的URL是https://movie.douban.com... 阅读详情

相关推荐

利用正则表达式爬取猫眼电影TOP100信息

本文利用requests库和正则表达式爬取了猫眼电影TOP100电影信息,并将电影封面和标题、主演等文字信息保存在了本地。本文完整代码链接:https://github.com/iapcoder/MaoYanTop100。运行里面的spider.py即可。 一、目标 练习使用正则表达式 使用python爬虫的库requests 爬取猫眼电影TOP100榜中电影的标题、主演、上映时间、评分、...

wangTongGen 4152

【Python 爬虫系列非专业教学】(3)手把手教你获取猫眼电影 Top 100 榜单

开门见山 最近吧,迷上了看电影。(事先声明,我并不是拖更去看的电影,emmm我自己都不信) 所以今儿我们来抓取猫眼电影 Top 100 榜单中所有的电影信息。 工具篇: 依旧是我们的老伙伴,PyCharm 和 Google 浏览器,同时python 版本为3.6.6 新手村村长发布的任务: · 抓取 Top 100 榜单 · 输入爬取的起始页:2 · 输入...

qq_41453482的博客 2327

Python爬虫实战 | (1) 爬取猫眼电影官网的TOP100电影榜单

在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的片名,主演,上映日期,评分和封面等内容。 打开猫眼Top100,分析URL的变化:发现Top100榜总共包含10页,每页10部电影,并且每一页的URL都是有规律的,如第2页为https://maoyan.com/board/4?offset=10,第三页为https://maoyan.co...

sdu_hao的博客 3242

【Python爬虫五十个小案例】爬取猫眼电影Top100

通过本篇博客,我们展示了如何使用Python爬虫技术抓取猫眼电影Top100的数据,并进行简单的数据清洗与分析。除了数据抓取和分析,我们还学习了如何应对反爬虫机制。通过这些知识,我们可以很好的进行后续的数据分析,或者可以查看自己喜欢哪个电影,当然本节主要还是为了练手,为了后续我们进行其他项目任务Python爬虫五十个小案例:https://blog.youkuaiyun.com/null18/category_12840403.html?

null18的博客 6890

python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例

这篇文章主要介绍了python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例,需要的朋友可以参考下 使用Python爬虫库requests多线程抓取猫眼电影TOP100思路: 查看网页源代码 抓取单页内容 正则表达式提取信息 猫眼TOP100所有信息写入文件 多线程抓取 运行平台:windows Python版本:Python 3.7. IDE:Sublime ...

python爬虫开发教程 4892

Python爬虫实战Pro | (1) 爬取猫眼电影Top100榜单

在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的序号,片名,主演,上映日期,评分和封面等内容。 之前在Python爬虫实战(1)中我们曾爬取过,本篇博客将对上次内容进行升级,使用yield和多线程。 打开猫眼Top100,分析URL的变化:发现Top100榜总共包含10页,每页10部电影,并且每一页的URL都是有规律的,如第2页为ht...

sdu_hao的博客 2792

Python爬虫从入门到精通——爬虫实战:爬取猫眼电影排行Top100

本文为实战篇,需提前学习[《Python爬虫从入门到精通》基本库requests的使用和正则表达式的内容。我们需要抓取的目标为猫眼电影-榜单-TOP100榜,其地址为:[https://maoyan.com/board/4](https://maoyan.com/board/4)。我们希望爬取各个电影的排名、名称、主演、上映时间、上映地区等信息。最后保存为一张Excel表格。

冯·诺依曼 4万+

python网络爬虫实例:Requests+正则表达式爬取猫眼电影TOP100榜

一、前言 最近在看崔庆才先生编写的《Python3网络爬虫开发实战》这本书,学习了requests库和正则表达式,爬取猫眼电影top100榜单是这本书的第一个实例,主要目的是要掌握requests库和正则表达式在实际案例中的使用。 二、开发环境 运行平台: Windows 10 Python版本: Python3.6 IDE: PyCharm 三、爬取思路 抓取单页内容 正则表达...

Wang Gangdan的博客 3906

python爬虫-利用requests库爬取猫眼电影top100

利用requests 库来抓取猫眼电影 TOPl100 的相关内容。 目标站点:https://maoyan.com/board/4 1.抓取首页 定义get_one_page方法,并给他传入url参数 注意:猫眼电影网站有反爬虫措施,设置headers后可以爬取 import requests headers = { 'Content-Type': 'text/plain; chars...

YOUNGBC的博客 4017

Python爬虫(一)--爬取猫眼Top100排行

1.概述 这是博主接触的第一个爬虫实例,利用python的request库和正则表达式对猫眼网站的Top100电影进行爬取,将结果打印出来并保存成txt文件。关键的部分有以下三点: python中request库的简单使用。 利用re模块来解析request到的页面。 json格式文件存储和读取方法。 2.详细代码以及注释如下: # -*-coding:utf-8 -*- im...

柚子先生的博客 4672

python爬取猫眼电影TOP100信息

爬取猫眼TOP100信息 1.目标: 爬取猫眼电影TOP100的电影名称,上映时间,评分等信息,爬取的网站为"https://maoyan.com/board/4",结果保存为文件形式 2.思路分析 首先打开"https://maoyan.com/board/4",可以看到结果如下图所示 可以看到,排名第一的电影是霸王别姬,并且可以看到主演,上映时间,评分等信息。 往下翻,我们可以观察到下面...

weixin_40735291的博客 1994

【python爬虫】爬取猫眼TOP100电影

猫眼TOP100电影 1. 分析数据构成 1.1 分析每页内容 在这里使用chrome浏览器,点击f12打开开发者工具后,选择Network,查看初始的页面内容,在Name部分找到对应的页面文件 根据返回的html可以看到,排名中每一部电影内容都被一个&lt;dd&gt;&lt;/dd&gt;元素包裹起来,因此只要解析每一个&lt;dd&gt;&lt;/dd&gt;元素中的内容,就可以获取当...

西瓜那么甜 3091

废文xxxx

xxxxx

仲君Johnny的博客 5958

Python爬虫第9节-爬取猫眼电影排行数据的简单实战

这一节,咱们要抓取猫眼电影TOP100的相关信息,会用到requests库和正则表达式。requests库用起来比urllib更方便,而且到现在我们还没系统学习过HTML解析库,所以就决定用正则表达式来做解析工具。这一节,我们通过抓取猫眼TOP100电影的信息,实际操作练习了requests库和正则表达式的使用方法。这只是一个非常基础的例子,我们借助这个例子,对怎么实现爬虫有个初步的概念,同时对这两个库的使用有更透彻的理解。但是怎么对抗反爬虫,我们后续继续跟进。

攻城狮7号的博客 2072

基于Python的网络爬虫——猫眼电影TOP100

【代码】基于Python的网络爬虫——猫眼电影TOP100。

半城之北的博客 3180

Python网络爬虫实战:抓取猫眼TOP100电影信息

本文还有配套的精品资源,点击获取 简介:在Python中,Web爬虫是获取互联网数据的关键技能。本教程将指导如何结合使用requests库和正则表达式来从猫眼电影网站的TOP100榜单中抓取电影信息。首先通过requests库发送HTTP请求获取网页内容,然后运用正则表达式提取电影名和评分等信息。在进行网络爬虫时,遵守robots.txt规则,设置请求延时,并考虑处理网站的...

weixin_42515392的博客 2608

Python爬虫项目--爬取猫眼电影Top100榜(完整源码)!

本次抓取猫眼电影Top100榜所用到的知识点:python requests库正则表达式csv模块多进程。

Python_trys的博客 2289

Python爬虫库requests获取响应内容、响应状态码、响应头

首先在程序中引入Requests模块 import requests 一、获取不同类型的响应内容 在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容 1.文本响应内容 获取文本类型的响应内容 r = requests.get('https://www.baidu.com') r.text # 通过文本的形式获取响应内容 '<!DOCTYPE html>\r\n<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta htt

上一篇: 爬虫从头学之爬虫基本原理
下一篇: 二维码图片
Young-zhou
博客等级 码龄10年 10粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值