使用Beautiful Soup爬取猫眼TOP100的电影信息
使用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的电影信息的更多相关文章
- python爬虫:爬取猫眼TOP100榜的100部高分经典电影
1.问题描述: 爬取猫眼TOP100榜的100部高分经典电影,并将数据存储到CSV文件中 2.思路分析: (1)目标网址:http://maoyan.com/board/4 (2)代码结构: (3) ...
- 一起学爬虫——使用Beautiful Soup爬取网页
要想学好爬虫,必须把基础打扎实,之前发布了两篇文章,分别是使用XPATH和requests爬取网页,今天的文章是学习Beautiful Soup并通过一个例子来实现如何使用Beautiful Soup ...
- Python 爬取 猫眼 top100 电影例子
一个Python 爬取猫眼top100的小栗子 import json import requests import re from multiprocessing import Pool #//进程 ...
- 使用selenium 多线程爬取爱奇艺电影信息
使用selenium 多线程爬取爱奇艺电影信息 转载请注明出处. 爬取目标:每个电影的评分.名称.时长.主演.和类型 爬取思路: 源文件:(有注释) from selenium import webd ...
- 7.5爬取猫眼Top100电影名单
2018-7-5 20:22:57 还有有一丢丢成就感!以后可以爬取简单网站了!比如妹子图片,只是现在不知道咋下载! 正则还是刚看,要多去用正则!正则很强大的东西! #!/usr/bin/env py ...
- 爬取猫眼TOP100
学完正则的一个小例子就是爬取猫眼排行榜TOP100的所有电影信息 看一下网页结构: 可以看出要爬取的信息在<dd>标签和</dd>标签中间 正则表达式如下: pattern ...
- 整理requests和正则表达式爬取猫眼Top100中遇到的问题及解决方案
最近看崔庆才老师的爬虫课程,第一个实战课程是requests和正则表达式爬取猫眼电影Top100榜单.虽然理解崔老师每一步代码的实现过程,但自己敲代码的时候还是遇到了不少问题: 问题1:获取respo ...
- 【爬虫】-爬取猫眼TOP100
原文崔庆才<python3网络爬虫实战> 本文为自学记录,如有侵权,请联系删除 目标: 熟悉正则表达式,以及爬虫流程 获取猫眼TOP100榜单 1.网站分析 目标站点为http://www ...
- Python爬取猫眼top100排行榜数据【含多线程】
# -*- coding: utf-8 -*- import requests from multiprocessing import Pool from requests.exceptions im ...
随机推荐
- Linux的那些事-系统启动(增加开机启动项)
1 /etc/init.d 2 /etc/inittab 3 /etc/rc.d/init.d 1. /etc/init.d 是一般开机的启动服务存放在这个目录下,至于实现机制,其实 ...
- 多版本python创建虚拟环境
不表示默认的python使用 mkvirtualenv -p c:\python27\python.exe test1,即 mkvirtualenv -p 要安装的版本的python.exe路径 ...
- 解决pycharm打开html页面一直刷新
顺序——> File ——>Project:项目名——>project Structure 右侧的 + Add ContentRoot下面只保留本项目路径,其他全删了 方法2(推荐) ...
- 【转载】Linux进程间通信(六):共享内存 shmget()、shmat()、shmdt()、shmctl()
来源:https://www.cnblogs.com/52php/p/5861372.html 下面将讲解进程间通信的另一种方式,使用共享内存. 一.什么是共享内存 顾名思义,共享内存就是允许两个不相 ...
- AMD R2600+微星B450迫击炮配置的新工作机,分享给大家
上个月,突然觉得自己总做用的电脑有点老了,虽然很不舍陪自己战斗了3,4年的老战士,下了很大的决心,才决定搞一台新的吧,虽然新电脑的配置也不算非常高,但是用于开发的话,也算不错的选择了,特此分享一下.又 ...
- linux中网络命令
write 解释 命令名称:write 命令所在路径:/usr/bin/write 执行权限:所有用户 功能描述:给用户发信息,以Ctrl+D保存结束 语法 write <用户名> 示例 ...
- C#中FolderBrowserDialog类打开文件夹使用说明
C#中FolderBrowserDialog类打开文件夹使用说明 作用:打开文件选择窗口获取文件夹路径. 导入的命名空间为: System.Windows.Forms; 属性: Descr ...
- 关于建立 Carbon Forum 后 设置访问链接的问题
如果不想访问的是根目录可以如下设置. location /cf { try_files $uri $uri/ /cf/index.php?$query_string;} 这样访问 /cf 目录就可以访 ...
- 微软帮助类SqlHelper
using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collect ...
- Vue中import from的来源--省略后缀与加载文件夹
Vue使用import ... from ...来导入组件,库,变量等.而from后的来源可以是js,vue,json.这个是在webpack.base.conf.js中设置的: module.exp ...