使用Beautiful Soup爬取猫眼TOP100的电影信息,将排名、图片、电影名称、演员、时间、评分等信息,提取的结果以文件形式保存下来。

import time
import json
import requests
from bs4 import BeautifulSoup def get_one_page(url):
try:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36'
+ '(KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}
response = requests.get(url, headers=headers)
response.encoding = response.apparent_encoding
if response.status_code == 200:
return response.text
return None
except RequestException:
return None def parse_one_page(text):
soup = BeautifulSoup(text, 'lxml') #使用lxml XML 解析库
#CSS选择器
#div p 选择div节点内部的所有p节点
#div>p 选择父节点为div节点的所有p节点
#调用select()方法,传入相应的CSS选择器
ranking = soup.select('dd .board-index') #后代选择器
imgsrc = soup.select('#app > div > div > div.main > dl > dd > a > img.board-img') #子代选择器
title = soup.select('#app > div > div > div.main > dl > dd > a')
#star = soup.select('#app > div > div > div.main > dl > dd > div > div > div.movie-item-info > p.star')
#find_all()查询所有符合条件的元素
star = soup.find_all(name='p', class_='star') #class是关键字,所以加下划线
releasetime = soup.find_all(name='p', class_='releasetime')
interger = soup.find_all(name='i', class_='integer')
fraction = soup.find_all(name='i', class_='fraction')
for i in range(10):
yield {
'index': ranking[i].string, #亦可用get_text()
'image': imgsrc[i].attrs['data-src'],
'title': title[i]['title'], #这两种都可以获取属性值
'actor': star[i].string.strip()[3:],
'time': releasetime[i].string.strip()[5:],
'score': interger[i].string + fraction[i].string
} def write_to_file(content):
with open('maoyan.txt', 'a', encoding='utf-8') as f:
f.write(json.dumps(content, ensure_ascii=False)+'\n') def main(offset):
url = 'https://maoyan.com/board/4?offset=' + str(offset)
text = get_one_page(url)
for item in parse_one_page(text):
print(item)
#write_to_file(item) if __name__ == '__main__':
for i in range(10):
main(offset=i*10)
time.sleep(1)

使用Beautiful Soup爬取猫眼TOP100的电影信息的更多相关文章

  1. python爬虫:爬取猫眼TOP100榜的100部高分经典电影

    1.问题描述: 爬取猫眼TOP100榜的100部高分经典电影,并将数据存储到CSV文件中 2.思路分析: (1)目标网址:http://maoyan.com/board/4 (2)代码结构: (3) ...

  2. 一起学爬虫——使用Beautiful Soup爬取网页

    要想学好爬虫,必须把基础打扎实,之前发布了两篇文章,分别是使用XPATH和requests爬取网页,今天的文章是学习Beautiful Soup并通过一个例子来实现如何使用Beautiful Soup ...

  3. Python 爬取 猫眼 top100 电影例子

    一个Python 爬取猫眼top100的小栗子 import json import requests import re from multiprocessing import Pool #//进程 ...

  4. 使用selenium 多线程爬取爱奇艺电影信息

    使用selenium 多线程爬取爱奇艺电影信息 转载请注明出处. 爬取目标:每个电影的评分.名称.时长.主演.和类型 爬取思路: 源文件:(有注释) from selenium import webd ...

  5. 7.5爬取猫眼Top100电影名单

    2018-7-5 20:22:57 还有有一丢丢成就感!以后可以爬取简单网站了!比如妹子图片,只是现在不知道咋下载! 正则还是刚看,要多去用正则!正则很强大的东西! #!/usr/bin/env py ...

  6. 爬取猫眼TOP100

    学完正则的一个小例子就是爬取猫眼排行榜TOP100的所有电影信息 看一下网页结构: ​ 可以看出要爬取的信息在<dd>标签和</dd>标签中间 正则表达式如下: pattern ...

  7. 整理requests和正则表达式爬取猫眼Top100中遇到的问题及解决方案

    最近看崔庆才老师的爬虫课程,第一个实战课程是requests和正则表达式爬取猫眼电影Top100榜单.虽然理解崔老师每一步代码的实现过程,但自己敲代码的时候还是遇到了不少问题: 问题1:获取respo ...

  8. 【爬虫】-爬取猫眼TOP100

    原文崔庆才<python3网络爬虫实战> 本文为自学记录,如有侵权,请联系删除 目标: 熟悉正则表达式,以及爬虫流程 获取猫眼TOP100榜单 1.网站分析 目标站点为http://www ...

  9. Python爬取猫眼top100排行榜数据【含多线程】

    # -*- coding: utf-8 -*- import requests from multiprocessing import Pool from requests.exceptions im ...

随机推荐

  1. HDU 1006 模拟

    Tick and Tick Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  2. 杭电------2048神上帝以及老天爷(C语言写)

    #include<stdio.h> ] = { -,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,-,- }; ] = { }; long long jiec ...

  3. Pyinstaller打包exe,丢失图标等问题

    Pyinstaller打包exe,丢失图标等问题 一.原因 exe运行时会解压一个名为'_MEI*'的资源文件夹到电脑的临时目录,程序结束时删除. 程序里使用'\图标.png'这样的路径,exe运行时 ...

  4. Python—TCP的黏包问题以及UDP的分片问题

    TCP协议与UDP协议 TCP(transport control protocol,传输控制协议)是面向连接的,面向流的,提供高可靠性服务.收发两端(客户端和服务器端)都要有一一成对的socket, ...

  5. export和export default的区别

    export和export default的区别一.export的使用1.直接输出export let words = ‘hello world!!!’export function output() ...

  6. linux centos7 非root用户安装源码版docker

    注意:非root用户必须要有sudo权限 一.安装前的准备 1.查看当前主机是否有docker组 若没有输出结果则新建 再次查看,发现已经有了docker组 2.新增拥有sudo权限的用户(若知道ro ...

  7. SQL内容补充

    一.where和having 1.where 后不能跟聚合函数,因为where执行顺序大于聚合函数. 2. where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前 ...

  8. 汇桔网被曝拖欠12月份工资至今,强制买产品,CEO称去年交易额超400亿

    三言财经消息,近日有汇桔网员工爆料,汇桔网拖欠12月工资至今,通知延迟到4月才发放. 此外爆料还指出,"各种手法逼迫大家离开,员工要么继续忍受,要么主动离职,要么停薪留职.都不同意只能仲裁. ...

  9. java设计模式学习笔记--浅谈设计模式

    设计模式的目的 编写软件的过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战.设计模式为了让程序具有更好的 1.代码重用性(即:相同功能的代码,不用多次编写) ...

  10. EasyUI笔记(二)Layout布局

    本系列只列出一些常用的属性.事件或方法,具体完整知识请查看API文档 Panel(面板)   1. 通过标签创建面板 <div id="p" class="easy ...