声明:此篇文章主要是观看静觅教学视频后做的笔记,原教程地址:https://cuiqingcai.com/

流程框架

1.抓取单页内容:利用requests请求目标站点,得到单个网页HTML代码,返回结果。

2.正则表达式分析:根据HTML代码分析得到电影的名称,主演,上映时间,评分,图片链接等信息

3.开启循环及多线程:对多页内容遍历,开启多线程提高抓取速度

4.保存至文件:通过文件的形式将结果保存,每一部电影一个结果一行Json字符串

流程设计

1.maoyan_Spider函数是一个整体的爬虫调度器,其中包含了请求的url地址,headers请求头

def maoyan_Spider(offset):

"""

作用:猫眼电影调度器

offset:get的页码参数

"""

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

headers = {

'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36'

}

# 获取单页html

html = get_one_page(url, headers)

# print(html)

# 将每一页的电影信息解析,并写入文件中

for item in parse_one_page(html):

# print(item)

item_str = json.dumps(item, ensure_ascii=False)

write_to_file(item_str)

2.首先以单个网页源代码进行分析,进入到猫眼电影官网榜单,通过构造请求可以拿到http://maoyan.com/board/4?的源码

def get_one_page(url, headers):

"""

作用:获取一页的源码

url:请求地址

headers:请求头

"""

try:

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

if response.status_code == 200:

return response.text

return None

except RequestException:

return None

3.接下来感觉整个爬虫的难点就在于解析,源码有了,这里我使用的还是正则来提取数据,稍有字符写错,可能就解析不出来了。下面以Top榜第一名为例进行解析,并转化为json格式保存

1

霸王别姬

主演:张国荣,张丰毅,巩俐

上映时间:1993-01-01(中国香港)

9.6

可以得出其字符串匹配规则是

'

.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?).*?releasetime">(.*?).*?integer">(.*?).*?fraction">(.*?)'

4.然后通过使用re模块findall方法找到所有电影信息,电影信息包含排名,图片地址,电影名称,主演,上映时间,评分。findall方法返回的是一个元素为元组的列表,然后遍历这些元素通过yield生成json字典形式

def parse_one_page(html):

"""

作用:解析一页的源码

html:网页源码

"""

pattern = re.compile('

.*?board-index.*?>(.*?).*?data-src="(.*?)".*?name">(.*?).*?star">(.*?).*?releasetime">(.*?).*?integer">(.*?).*?fraction">(.*?)', re.S)

items = pattern.findall(html)

# print(items)

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]

}

5.最后是写入文件,因为此处是对每个电影信息进行写入,所以注意写入方法用的是a,不是w。否则写入的内容只有一个电影信息,也就是Top100

def write_to_file(item):

"""

作用:往文件中写入内容

item:处理后的单个电影信息

"""

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

f.write(item + '\n')

猫眼api html,Requests库+正则爬取猫眼电影Top100相关推荐

  1. Crawler:基于BeautifulSoup库+requests库实现爬取2018最新电影《后来的我们》热门短评

    Crawler:基于BeautifulSoup库+requests库实现爬取2018最新电影<后来的我们>热门短评 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: ...

  2. python3爬虫实战:requests库+正则表达式爬取头像

    python3爬虫实战:requests库+正则表达式爬取头像 网站url:https://www.woyaogexing.com/touxiang/qinglv/new/ 浏览网页:可以发现每个图片 ...

  3. 运用正则爬取猫眼电影流程

    一.爬虫爬取网站流程 1.分析网站的数据来源 ​ 分析网站结构,待爬取数据在哪. 2.查看页面数据能否通过requests模块获取到 ​ (1)在开发者工具中,找到页面的url对应的请求.通过这条请求 ...

  4. 利用正则爬取猫眼电影

    爬取猫眼电影 import json import requests from requests.exceptions import RequestException import re def ge ...

  5. Requests+正则爬取猫眼电影TOP100

    (一)目标站点的分析 首先打开我们的目标网站,发现每一页有十个电影,最下面有分页标志,而分页只改变的是标签后缀,如下: 而后可以在网页按f12打开源代码管理,查看网页每处信息对应的源代码形式,如下图: ...

  6. requests+正则爬取猫眼电影前100

    最近复习功课,日常码农生活. import requests from requests.exceptions import RequestException import re import jso ...

  7. python爬虫requests实战_Python爬虫之requests库网络爬取简单实战

    实例1:直接爬取网页 实例2 : 构造headers,突破访问限制,模拟浏览器爬取网页 实例3 : 分析请求参数,构造请求参数爬取所需网页 实例4: 爬取图片 实例5: 分析请求参数,构造请求参数爬取 ...

  8. requests+bs4+正则爬取前程无忧招聘信息进阶版

    整理思路 获取所有职位信息的url 通过正则去掉不符合要求的url 爬取详情页信息 解析详情页 写入txt文件 循环抓取 提高速度多线程爬取 先放上url:https://search.51job.c ...

  9. Python网页爬虫练习:requests库Beautiful爬取bilibili网页信息

    我是卢本伟! import requests from bs4 import BeautifulSoup import bs4 def get_blibli_vedio():#获取bilibili实时 ...

最新文章

  1. R可视化删除ggplot2图中的网格线(Gridlines)
  2. 开源三级联动,Vue.js编写省份、城市、区、县三级联动源码
  3. 【深度学习】softmax后处理和弹性形变前处理
  4. html前端 echarts图表使用详解
  5. android enum java包_Android @IntDef注解取代Java enum枚举提高性能详解
  6. 《Scikit-Learn与TensorFlow机器学习实用指南》 第01章 机器学习概览
  7. JavaBean fields TO ExtjsMode fields
  8. SQL进阶,子查询与窗口函数
  9. 使用TA-Lib在vn.trader上开发CTA交易策略
  10. [翻译]用表单字段加亮的方式为用户提供友好的界面
  11. 队列的顺序存储框架搭建
  12. 台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras
  13. Solidworks二次开发环境搭建(Net)
  14. 单独计算机械台班费套什么定额,机械台班费用定额
  15. css margin 塌陷 经典bug
  16. 使用谷歌Chrome浏览器将网页保存为html格式
  17. C++——set基本操作总结
  18. Github如何快速找到优秀开源项目
  19. Python 数据扩充(亮度、翻转、噪声)
  20. 避免重要数据泄露的8种方式

热门文章

  1. .net 5 windows 系统服务 workserver
  2. bp神经网络预测未来数据,bp神经网络数据预处理
  3. TROPOMI(哨兵5P)数据介绍及下载方法
  4. pgi linux安装教程,Ubuntu 10.10下安装PGI Fortran 10.2
  5. ssh mysql视屏_ssh+MySQL开发VOD视频点播系统
  6. 教你搭建局域网影吧vod点播系统
  7. TensorFlow的神经网络设计讲解
  8. vue实现图片滑动验证功能——功能实现
  9. 转:创业公司如何公平分配股权?
  10. 水位报警器c语言程序,简易水位报警器制作_制作简单的水满报警器 - 全文