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)

最新文章

  1. 关于.dll&#39; could not be found 的问题以及解决方案
  2. bzoj1616
  3. hasOwnProperty
  4. json体会
  5. -_-#【H5】meta / href
  6. PHP文件访问技术
  7. cocos2d-x 精灵移动
  8. sed awk 小例
  9. TCPIP header
  10. Java_web学习(一) jdk配置
  11. Vue入门
  12. 简单了解AJAX
  13. C#-----类DateTime的常用方法
  14. Linux shell基础知识(上)
  15. vnc 搭建 转
  16. XE 画矩形实现拖拉改变大小(属性)
  17. [LeetCode] questions conlusion_InOrder, PreOrder, PostOrder traversal
  18. 在MyEclipse中使用javadocAPI文档
  19. Python的字典类型
  20. 关于Unity中的刚体和碰撞器的相关用法(二)

热门文章

  1. maven项目管理1
  2. Python上下文管理器(Context managers)
  3. poj 3164 Command Network (朱刘算法)
  4. 【洛谷3343_BZOJ3925】[ZJOI2015]地震后的幻想乡(状压 DP_期望)
  5. LoadRunner_11破解教程完整版
  6. 数论+DP HDOJ 4345 Permutation
  7. DOM,javascript,Web API之间的关系——onclick 引起的思考与调研
  8. 老潘 - ListView分析 - 学以致用篇(一)
  9. rabbitmq在storm中使用
  10. CFAN:Coarse-to-Fine Auto-Encoder Networks (CFAN) for Real-Time Face Alignment