python 抢票代码 猫眼演出_Python爬虫-猫眼电影排行
爬虫的目标
爬取猫眼电影TOP100的电影名称,时间,评分,图片等信息
抓取分析
查看网页源代码,找到对应的目标信息,发现一部电影对应的源代码是一个dd节点
抓取首页
为了方便,这里先抓取第一页的内容,运行之后,可以查看到网页的源代码,之后需要对页面进行解析。
import requests
def get_one_page(url):
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
} #头信息,爬取一些网站时需要加上,否则可能会爬取失败
response = requests.get(url,headers=headers)
if (response.status_code==200):
return response.text #返回网页内容
return None
def main():
url = 'http://www.maoyan.com/board/4'
html = get_one_page(url)
print(html)
main()
正则匹配
正则表达式匹配对应的电影排名,图片,名称,内容,主演,发布时间,评分等7个内容
首先先看看正则匹配电影排名:
.?board-index.?>(.*?)
(.*?)是方便可以用group()得到所要的结果
下面贴出爬取以上7种的正则表达式(较复杂,在后续的文章中会改进,这里只做简单使用)
.?board-index.?>(.?).?data-src="(.?)".?name.?a.?>(.?).?star.?>(.?).?releasetime.?>(.?).?integer.?>(.?).?fraction.?>(.?).?
通过调用findall()方法提取所有内容,接下来,我们定义一个解析页面的方法parse_one_page(),代码如下
def parse_one_page(html):
pattern = re.compile('
.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?).*?star.*?>(.*?).*?releasetime.*?>(.*?).*?integer.*?>(.*?).*?fraction.*?>(.*?).*?',re.S)
items = re.findall(pattern,html)
print(items)
成功将一页的信息打印出来,以列表的形式,下面是输出结果:
将提取的匹配结果从列表转换成字典格式
def parse_one_page(html):
pattern = re.compile('
.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name.*?a.*?>(.*?).*?star.*?>(.*?).*?releasetime.*?>(.*?).*?integer.*?>(.*?).*?fraction.*?>(.*?).*?',re.S)
items = re.findall(pattern,html)
for item in items:
yield{
'index':item[0],
'image':item[1],
'title':item[2].strip(),
'actor':item[3].strip()[3:] if len(item[3])>3 else '',
'time':item[4].strip()[5:] if len(item[4])>5 else '',
'score':item[5].strip() + item[6].strip()
}
写入文件
dumps是将dict转化成str格式
content是一个字典类型的数据,一部电影的提取结果
ensure_ascii=False保证写入文件的是中文而不是Unicode编码
def write_to_file(content):
with open('result.txt','a',encoding='utf-8') as f:
print(type(json.dumps(content)))
f.write(json.dumps(content,ensure_ascii=False)+'\n')
分页爬取
if __name__=='__main__':
for i in range(10):
main(offset=i*10)
time.sleep(1)
本章总结
通过本次练习,加强掌握requests和re库的用法,这只是一个简单的爬虫实例,后续会继续更新更多的爬虫文章
ps:参考教程:Python3爬虫开发实战
源代码会在后续中上传至github
python 抢票代码 猫眼演出_Python爬虫-猫眼电影排行相关推荐
- python抢票代码_GitHub标星超12K,抢票神器大更新,支持候补
掐指一算,距离国庆黄金周还有半个月的时间!你出行的车票都抢到了吗? 图片来自 pexels 根据国务院办公厅发布的关于 2019 年部分节假日安排的通知,国庆放假安排是:10 月 1 日至 7 日. ...
- python抢票代码运行内存越来越大_50 个加速包都抢不到车票,还不如这个 Python 抢票神器...
阅读文本大概需要 6.6 分钟. 又到了一年一度的抢票大战,本来就辛苦劳累了一年,想着可以早点订到票跟家里人团聚.所以有挺多的人,宁愿多花些钱去找黄牛买票.但今年各种抢票软件的横行,还有官方出的加速包 ...
- python抢票代码_教你用Python动刷新抢12306火车票,附源码!
用python另一个抢票神器,你get到了吗? 2017年时间飞逝,转眼间距离2018年春节还有不到1个月的时间,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? ... 难以想象的数据 ...
- python抢票12306源码_Python突破12306最后一道防线,实现自动抢票(附源码)
一年一度的春运又来了,今年我自己写了个抢票脚本.使用Python+Splinter自动刷新抢票,可以成功抢到.(依赖自己的网络环境太厉害,还有机器的好坏) Splinter是一个使用Python开发的 ...
- python抢票12306源码_Python实现12306火车票抢票系统
Python实现12306火车票抢票系统效果图如下所示: 具体代码如下所示: import urllib.request as request import http.cookiejar as coo ...
- python抢票代码_五一要来了,教你用Python动刷新抢12306火车票,附源码
用python另一个抢票神器,你get到了吗? 2020年时间飞逝,转眼间马上要到五一了,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? ... 难以想象的数据, 预示着今年春运回程和 ...
- python抢票代码_五一要来了,教你用Python自动抢火车票,附源码
用python另一个抢票神器,你get到了吗? 2020年时间飞逝,转眼间马上要到五一了,还在为抢不到火车票发愁吗?作为程序员的我们撸一个抢票软件可好? ... 难以想象的数据, 预示着今年春运回程和 ...
- python抢票代码_如何使用python爬取抢票?
有身在异乡的小伙伴们?相信绝大多数的小伙伴都曾有过离开过,或现在是,独在异乡的情况吧,拿小编来说,小编现在就是这种状况,回家次数不多,不是因为没有时间,而是因为没有车票,每次都需要拿抢票软件,于是,脑 ...
- python 抢票代码 猫眼演出_python爬虫实例-猫眼电影
1.环境准备 python3.6 pycharm 安装requests库,pip install requests 2.XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath ...
最新文章
- 从字符串中提取BCD码,转换为UINT数据并返回
- 循环队列的java结构_java数据结构之循环队列(数组实现)
- 基于JAVA+SpringBoot+Mybatis+MYSQL的送水公司后台管理系统
- 从Retrofit的源码来看 HTTP
- 深信服环境SCSA环境遇到的问题(无法访问网站)
- spring定时器时间表达式
- 怎么用计算机弹电脑病毒音乐,怎么制作电脑病毒?简单电脑病毒制作方法
- mtk flashtools工具回读镜像文件system.img
- VSS 和VDS 交换机区别
- 全文检索技术Lucene
- ERROR 1820 (HY000): You must reset your password using ALTER USER statement
- 英国易捷航空遭黑客入侵 约900万客户数据被窃取
- 【web前端基础 | H5】HTML简介
- 2D 23.2.23
- 无聊的apache错误(.htaccess pcfg_openfile)
- WinSCP(5.11.2)绿色便携版,开源SCP/SFTP客户端
- 【进程线程】1. 概念和区别
- 红色警戒2:罗曼诺夫的复仇(openRA) Linux安装指南
- 易语言让按钮支持回车键操作
- Vmware上安装Vxworks 5.5
热门文章
- 创新触手可及: 为使用企业级 OSGi 做好准备了吗?
- MongoDB的Morphia框架
- html的文件头标志,各类文件的文件头标志.docx
- 北上深广领军,成都名列第五,武汉跌出前十,中国城市综合发展指标最新排名公布...
- mysql 循环_MySQL实现for循环逐个遍历
- 全网最全资源需要的看过来---分享是一种情怀
- docker-compose 部署prometheus+grafana+alertmanager+chronograf+prometheus-webhook-dingtalk+loki
- Spring如何自动注入一个接口多个实现实例
- 仿豆瓣(静态web布局)(全)
- 二清分账不解决,平台企业还能走多远?