抓取猫眼TOP100的数据
import requests import re import json from multiprocessing import Pool from multiprocessing import Manager import time import functools #函数的包装器 # 抓取猫眼TOP100的数据 # 第一步:下载页面 def get_one_page(url): # 设置UA ua_header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/53"} response = requests.get(url, headers=ua_header) if response.status_code == 200:#OK return response.text return None # 第二步:提取信息 def parse_one_page(html): # 使用正则表达式的懒惰+findall的模式来提取信息 pattern = re.compile('<p class="name"[\s\S]*?title="([\s\S]*?)"[\s\S]*?<p class="star">([\s\S]*?)</p>[\s\S]*?<p class="releasetime">([\s\S]*?)</p>') items = re.findall(pattern, html) # 使用yield来返回信息给上层 for item in items: yield{ "title":item[0].strip(), "actor":item[1].strip(), "time":item[2].strip() } # 第三步:保存到本地文件系统中 def write_to_file(item): # 存储成json格式,以便于将来能方便的提取出来 with open("maoyanTop100.txt", 'a', encoding="utf-8") as f: f.write(json.dumps(item, ensure_ascii=False)+'\n') #0-100: 0,10,20,...,90 #http://maoyan.com/board/4?offset= def CrawlPage(lock, offset): # 将下载页面,解析页面及保存信息放入一个函数中 url = "http://maoyan.com/board/4?offset="+str(offset) html = get_one_page(url) for item in parse_one_page(html): lock.acquire() #加锁 write_to_file(item) lock.release() #释放锁 if __name__ == "__main__": # 使用进程池来抓取数据 # 在进程池之间通信或者加锁时需要用Manager manager = Manager() lock = manager.Lock() # 产生一个新的包装函数 newCrawlPage = functools.partial(CrawlPage, lock) pool = Pool() pool.map(newCrawlPage, [i*10 for i in range(10)]) pool.close() pool.join()
效果:
抓取猫眼TOP100的数据的更多相关文章
- Python爬取猫眼top100排行榜数据【含多线程】
# -*- coding: utf-8 -*- import requests from multiprocessing import Pool from requests.exceptions im ...
- Python Spider 抓取猫眼电影TOP100
""" 抓取猫眼电影TOP100 """ import re import time import requests from bs4 im ...
- Python爬虫之requests+正则表达式抓取猫眼电影top100以及瓜子二手网二手车信息(四)
requests+正则表达式抓取猫眼电影top100 一.首先我们先分析下网页结构 可以看到第一页的URL和第二页的URL的区别在于offset的值,第一页为0,第二页为10,以此类推. 二.< ...
- 使用Python抓取猫眼近10万条评论并分析
<一出好戏>讲述人性,使用Python抓取猫眼近10万条评论并分析,一起揭秘“这出好戏”到底如何? 黄渤首次导演的电影<一出好戏>自8月10日在全国上映,至今已有10天,其主演 ...
- python爬虫:爬取猫眼TOP100榜的100部高分经典电影
1.问题描述: 爬取猫眼TOP100榜的100部高分经典电影,并将数据存储到CSV文件中 2.思路分析: (1)目标网址:http://maoyan.com/board/4 (2)代码结构: (3) ...
- python+requests+re匹配抓取猫眼上映电影信息
python+requests抓取猫眼中上映电影,re正则匹配获取对应电影的排名,图片地址,片名,主演及上映时间和评分 import requests import re, json def get_ ...
- 使用 Python 抓取欧洲足球联赛数据
Web Scraping在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤 数据的采集和获取 数据的清洗,抽取,变形和装载 数据的分析,探索和预测 ...
- 抓取Js动态生成数据且以滚动页面方式分页的网页
代码也可以从我的开源项目HtmlExtractor中获取. 当我们在进行数据抓取的时候,如果目标网站是以Js的方式动态生成数据且以滚动页面的方式进行分页,那么我们该如何抓取呢? 如类似今日头条这样的网 ...
- 如何用python抓取js生成的数据 - SegmentFault
如何用python抓取js生成的数据 - SegmentFault 如何用python抓取js生成的数据 1赞 踩 收藏 想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓 ...
随机推荐
- shell zip和unzip压缩和解压,压缩效率
1.把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录zip -r mydata.zip ./*txt #压缩当 ...
- Android深度探索-卷1第四章心得体会
这一章的和三章的git用法有联系,so,吧上一章的git基本用法搞好了再来,具体的方法就是看书上网查,这里就不做详细步骤介绍了.这章就有点意思了,是源码的下载和编译,有能看的,能自己鼓捣的,本章介绍的 ...
- 调用Consul服务(消费服务)
调用Consul服务(消费服务) 依赖项 在spring-cloud-consul-client项目中添加依赖项,POM文件内容中添加如下依赖项: <dependency> <gro ...
- HDU 2152 Fruit( DP )
Fruit Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- db2模式
模式: 已命名对象的集合,可以对对象进行逻辑分组. 为用户A创建C模式: CREATE SCHEMA <schema-name> [ AUTHORIZATION <schema-ow ...
- DB2实例
实例是逻辑数据库管理环境,可以在此环境中对数据库进行编目和设置配置参数.根据需要, 可以在一台服务器上创建多个实例,该服务器为每个实例提供唯一的数据库服务器环境. 默认实例:DB2 显示实例: ...
- 【记录】解决uni-app 用nginx反向代理出现Invalid Host header问题
之前解决过一次,后来给忘记了,今天又遇到这个问题,现记录一下 修改uni-app的manifest.json文件 - >源码视图 添加以下代码: "disableHostCheck& ...
- 分支结构case 语句举例
- java 三元运算符
/* 一元运算符:只需要一个数据就可以进行操作的运算符 如:取反! 自增++ 自减 -- 二元运算符:需要两个数据才可以进行操作的运算符 如:加法+ 赋值= 三元运算符: 需要三个数据才可以进行操作的 ...
- event(1)
event event(事件流)是 window对象的一个属性 在JS中事件有2种类型 一种是冒泡类型 一种是捕获类型 冒泡类型最先是在IE中出现,而捕获类型最先在标准的DOM中出现,不过最终IE得胜 ...