Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息-阿里云开发者社区

开发者社区> 一个处女座的程序猿> 正文

Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息

简介: Crawler:基于requests库+json库+40行代码实现爬取猫眼榜单TOP100榜电影名称主要信息
+关注继续查看

输出结果

image.png

实现代码

# -*- coding: utf-8 -*-

#Py之Crawler:实实在在的40行代码爬取猫眼榜单TOP100榜电影名称主要信息——Jason niu

import requests

import re

import json

from requests.exceptions import RequestException

from multiprocessing.dummy import Pool

headers = {'User-Agent':'Mozilla/5.0 '}

def get_one_page(url):

   try:

       res = requests.get(url,headers = headers)

       if res.status_code == 200:

           return res.text

       return None

   except RequestException:

       return None

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)

   items = re.findall(pattern,html)

   for item in items:

       yield{

           'index': item[0],

           'image': item[1],

           'title': item[2],

           'actor': item[3].strip()[3:],

           'time': item[4].strip()[5:],

           'score': item[5] + item[6]

       }

def write_to_file(content):

   with open ('result.txt', 'a',encoding='utf-8') as f:

       f.write(json.dumps(content,ensure_ascii=False) + '\n')

       f.close()

def main(offset):

   url = 'http://maoyan.com/board/4?offset=' + str(offset)

   html = get_one_page(url)

   for item in parse_one_page(html):

       print(item)

       write_to_file(item)

if __name__ == '__main__':

   p = Pool()

   p.map(main,[i*10 for i in range(10)])


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一句代码实现批量数据绑定“.NET技术”[下篇]
  《上篇》主要介绍如何通过DataBinder实现批量的数据绑定,以及如何解决常见的数据绑定问题,比如数据的格式化。接下来,我们主要来谈谈DataBinder的设计,看看它是如何做到将作为数据源实体的属性值绑定到界面对应的控件上的。
578 0
从json自动生成模型代码
http://www.cocoachina.com/ios/20150713/12480.html
704 0
SAP MM 由于没有维护工厂的地址信息导致不能在ME51N和ME21N界面里输入工厂代码
SAP MM 由于没有维护Plant的Address信息导致不能在ME51N和ME21N界面里输入工厂代码 ME21N,视图创建采购订单,输入了Plant code 3600,   回车, Plant字段值被自动清空。
1235 0
+关注
一个处女座的程序猿
国内互联网圈知名博主、人工智能领域优秀创作者,全球最大中文IT社区博客专家、CSDN开发者联盟生态成员、中国开源社区专家、华为云社区专家、51CTO社区专家、Python社区专家等,曾受邀采访和评审十多次。仅在国内的CSDN平台,博客文章浏览量超过2500万,拥有超过57万的粉丝。
1701
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载