Python之爬虫-猫眼电影
Python之爬虫-猫眼电影
#!/usr/bin/env python
# coding: utf-8
import json
import requests
import re
import time
# 猫眼多了反爬虫,速度过快,则会无响应,所以这里多了一个延时等待
from requests.exceptions import RequestException
def get_one_page(url):
    try:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36(KHTML, like Gecko) '
                          'Chrome/52.0.2743.116 Safari/537.36',
        }
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return response.text  # 使得get_one_page()函数输出是一个文本
        return None
    except RequestException:
        return None
def parse_one_page(html):
    pattern = re.compile(
        '<dd>.*?board-index.*?>(.*?)</i>.*?name.*?a.*?>(.*?)</a>.*?star.*?>(.*?)</p>.*?releasetime.*?>(.*?)</p>.*?'
        'integer.*?>(.*?)</i>.*?fraction.*?>(.*?)</i>.*?</dd>',
        re.S)  # 正则表达式获取需要保存的东西编译成正则表达式对象
    items = re.findall(pattern, html)  # 遍历html文件中的所有pattern正则表达式对象
    for item in items:  # 把提取的对象装入字典中
        yield {
            'index': item[0],
            'title': item[1],
            'actor': item[2].strip()[3:],
            'time': item[3].strip()[5:],
            'score': item[4] + item[5]
        }
def write_to_file(content):  # 把文件写入并保存在result.tx + '\n')
    with open('result.txt', 'a', encoding='utf-8') as f:
        f.write(json.dumps(content, ensure_ascii=False) + '\n')
def main(offset):  # 遍历TOP100的电影的所有网址
    url = 'http://maoyan.com/board/4?offset=' + str(offset)  # 接收一个偏移量offset
    html = get_one_page(url)
    for item in parse_one_page(html):
        print(item)
        write_to_file(item)
if __name__ == '__main__':  # 创建一个偏移量offset
    for i in range(10):
        main(offset=i * 10)
        time.sleep(1)
												
											Python之爬虫-猫眼电影的更多相关文章
- 爬虫系列(1)-----python爬取猫眼电影top100榜
		
对于Python初学者来说,爬虫技能是应该是最好入门,也是最能够有让自己有成就感的,今天在整理代码时,整理了一下之前自己学习爬虫的一些代码,今天先上一个简单的例子,手把手教你入门Python爬虫,爬取 ...
 - python爬取猫眼电影top100
		
最近想研究下python爬虫,于是就找了些练习项目试试手,熟悉一下,猫眼电影可能就是那种最简单的了. 1 看下猫眼电影的top100页面 分了10页,url为:https://maoyan.com/b ...
 - python 爬取猫眼电影top100数据
		
最近有爬虫相关的需求,所以上B站找了个视频(链接在文末)看了一下,做了一个小程序出来,大体上没有修改,只是在最后的存储上,由txt换成了excel. 简要需求:爬虫爬取 猫眼电影TOP100榜单 数据 ...
 - Python正则表达式匹配猫眼电影HTML信息
		
爬虫项目爬取猫眼电影TOP100电影信息 项目内容来自:https://github.com/Germey/MaoYan/blob/master/spider.py 由于其中需要爬取的包含电影名字.电 ...
 - 一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接
		
[一.项目背景] 相信大家都有一种头疼的体验,要下载电影特别费劲,对吧?要一部一部的下载,而且不能直观的知道最近电影更新的状态. 今天小编以电影天堂为例,带大家更直观的去看自己喜欢的电影,并且下载下来 ...
 - Python 爬取猫眼电影最受期待榜
		
主要爬取猫眼电影最受期待榜的电影排名.图片链接.名称.主演.上映时间. 思路:1.定义一个获取网页源代码的函数: 2.定义一个解析网页源代码的函数: 3.定义一个将解析的数据保存为本地文件的函数: ...
 - Python爬取猫眼电影100榜并保存到excel表格
		
首先我们前期要导入的第三方类库有; 通过猫眼电影100榜的源码可以看到很有规律 如: 亦或者是: 根据规律我们可以得到非贪婪的正则表达式 """<div class ...
 - Python 爬取猫眼电影《无名之辈》并对其进行数据分析
		
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 罗昭成 PS:如有需要Python学习资料的小伙伴可以加点击下方链接 ...
 - Python爬取猫眼电影《飞驰人生》47858万条评论并对其进行数据分析
		
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Yura不说数据说 ,PYuraL PS:如有需要Python学习资 ...
 
随机推荐
- centos7开启路由转发
			
centos7开启路由转发 编辑/etc/sysctl.conf,添加一下内容. vim /etc/sysctl.conf net.ipv4.ip_forward=1 net.ipv4.conf.al ...
 - 题解报告:NYOJ #311完全背包(恰好装满)
			
描述: 直接说题意,完全背包定义有N种物品和一个容量为V的背包,每种物品都有无限件可用.第i种物品的体积是c,价值是w.求解将哪些物品装入背包可使这些物品的体积总和不超过背包容量,且价值总和最大.本题 ...
 - 16-2 基于localStorage或sessionStorage的计数器
			
localStorage 方法 localStorage 方法存储的数据没有时间限制.第二天.第二周或下一年之后,数据依然可用. <!doctype html> <html> ...
 - 222 Count Complete Tree Nodes 完全二叉树的节点个数
			
给出一个完全二叉树,求出该树的节点个数.完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置.若最底层为第 h ...
 - apache-storm-1.0.2.tar.gz的集群搭建(3节点)(图文详解)(非HA和HA)
			
不多说,直接上干货! Storm的版本选取 我这里,是选用apache-storm-1.0.2.tar.gz apache-storm-0.9.6.tar.gz的集群搭建(3节点)(图文详解) 为什么 ...
 - [转]ASP.NET MVC 3 Application Upgrader
			
本文转自:http://aspnet.codeplex.com/releases/view/59008 Recommended Download ASP.NET MVC 3 Applicat ...
 - hihocoder offer收割编程练习赛12 B 一面砖墙
			
思路: 就是求哪个长度出现的次数最多. 实现: #include <iostream> #include <cstdio> #include <algorithm> ...
 - kubernetesV1.13.1一键部署脚本(k8s自动部署脚本)
			
部署k8sv1.13.1只需要下面几步就OK了: git clone https://github.com/luckman666/deploy_Kubernetes-v1.13.1.git cd de ...
 - scala基础篇-03 if与for
			
一.Scala中的if是表达式** 1.定义方式 2.例子 二.for 的用法 1.定义方式: for{ x <- xs y=x+ ) }yield y 2.例子:
 - [Windows Server 2008] 404错误设置方法
			
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:如何设置4 ...