Python之爬虫-猫眼电影
2024-08-25 19:57:49
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)
最新文章
- 关于.dll&#39; could not be found 的问题以及解决方案
- bzoj1616
- hasOwnProperty
- json体会
- -_-#【H5】meta / href
- PHP文件访问技术
- cocos2d-x 精灵移动
- sed awk 小例
- TCPIP header
- Java_web学习(一) jdk配置
- Vue入门
- 简单了解AJAX
- C#-----类DateTime的常用方法
- Linux shell基础知识(上)
- vnc 搭建 转
- XE 画矩形实现拖拉改变大小(属性)
- [LeetCode] questions conlusion_InOrder, PreOrder, PostOrder traversal
- 在MyEclipse中使用javadocAPI文档
- Python的字典类型
- 关于Unity中的刚体和碰撞器的相关用法(二)
热门文章
- maven项目管理1
- Python上下文管理器(Context managers)
- poj 3164 Command Network (朱刘算法)
- 【洛谷3343_BZOJ3925】[ZJOI2015]地震后的幻想乡(状压 DP_期望)
- LoadRunner_11破解教程完整版
- 数论+DP HDOJ 4345 Permutation
- DOM,javascript,Web API之间的关系——onclick 引起的思考与调研
- 老潘 - ListView分析 - 学以致用篇(一)
- rabbitmq在storm中使用
- CFAN:Coarse-to-Fine Auto-Encoder Networks (CFAN) for Real-Time Face Alignment