一个简单python爬虫的实现——爬取电影信息
最近在学习网络爬虫,完成了一个比较简单的python网络爬虫。首先为什么要用爬虫爬取信息呢,当然是因为要比人去收集更高效。
网络爬虫,可以理解为自动帮你在网络上收集数据的机器人。
网络爬虫简单可以大致分三个步骤:
第一步要获取数据,
第二步对数据进行处理,
第三步要储存数据。
获取数据的时候这里我用到了python的urllib标准库,它是python中非常方便抓取网页内容的一个模块。
具体为:
这里我要爬取的是电影天堂一个电影页面的电影名称,日期等数据。
1 from urllib import request2 def get_data ( ):3 url=\'http://www.dytt8.net/html/gndy/dyzz/list_23_1.html\'4 headers={\'User-Agent\': \' Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\' }5 req=request.Request(url, headers=headers)6 response=request.urlopen(req)7 # print (type(response)) #响应对象的类型8 # print(response.getcode()) #响应状态码9 # print(response.info()) 10 if response.getcode() == 200: 11 data=response.read()#读取响应的结果 12 data =str(data,encoding=\'gb2312\') 13 #print(data) 14 #将数据写入文件中 15 with open (\'index.html\',mode=\'w\',encoding=\'gb2312\') as f: 16 f.write(data)
这里的headers是一个参数,就是你的浏览器在访问服务器的时候,会让服务器知道你的浏览器的一些信息,还有操作系统等信息。if 函数来判断当网站成功响应的时候,会返回一个200.这时候读取响应的数据结果,就是网页的代码。这里我做了一个字符串转化处理,根据网页代码显示编码为gb2312,所以这时候只要将encoding设置为gb2312就可以了。
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 3 <html xmlns="http://www.w3.org/1999/xhtml"> 4 5 <head> 6 7 <META http-equiv=Content-Type content="text/html; charset=gb2312">
根据上面的网页代码,charset为gb2312判断的。
当我们存取了网页数据后,发现它还是html格式的,而且有很多html,css的代码,但是我们只想要其中的文字信息,这时候怎么办呢。
这时候就要用到一个强大的数据处理模块,beautifusoup4,俗称美味汤。安装好这个模块后。我们就可以对我们的html文件做进一步的处理,提取我们需要的信息。
1 from urllib import request2 from bs4 import BeautifulSoup3 def get_data ( ):4 url=\'http://www.dytt8.net/html/gndy/dyzz/list_23_1.html\'5 headers={\'User-Agent\': \' Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\' }6 req=request.Request(url, headers=headers)7 response=request.urlopen(req)8 # print (type(response)) #响应对象的类型9 # print(response.getcode()) #响应状态码 10 # print(response.info()) 11 if response.getcode() == 200: 12 data=response.read()#读取响应的结果 13 data =str(data,encoding=\'gb2312\') 14 #print(data) 15 #将数据写入文件中 16 with open (\'index.html\',mode=\'w\',encoding=\'gb2312\') as f: 17 f.write(data) 18 def parse_data(): 19 with open (\'index.html\',mode=\'r\',encoding=\'gb2312\') as f: 20 html = f.read() 21 bs = BeautifulSoup(html,\'html.parser\') 22 metas = bs.select("[class~=ulink]") 23 date = bs.select("[color=#8F8C89]") 24 i=0 25 while i < 25: 26 print(metas[i].get_text()) 27 print(date[i].get_text()) 28 i=i+1 29 30 31 32 33 if __name__ == \'__main__\': 34 #get_data() 35 parse_data()
这里我们用到了美味汤中的CSS选择器功能,就是只把我们想要的信息选择处来,根据网页代码,发现class等于ulink的时候后面跟着的信息是我们需要的。还有color=#8F8C89也是我们需要的。使用select方法,将选中的信息筛选出来。最终结果:
点击0是因为网站显示就是0,估计是网站的问题。这样我们就得到了电影信息以及发布的时间信息。后面还有很多。根据这次简单爬虫的实现,我发现web爬虫除了你要懂python的知识之外,对于html,CSS等前端知识你也要有一定了解。爬虫是模拟人去收集网站数据的,有些网站以及建立了反爬虫技术。所以爬虫的技术也在不断更新。
python编程https://edu.csdn.net/course/detail/36170
一个简单python爬虫的实现——爬取电影信息相关推荐
- Python爬虫:Xpath爬取网页信息(附代码)
Python爬虫:Xpath爬取网页信息(附代码) 上一次分享了使用Python简单爬取网页信息的方法.但是仅仅对于单一网页的信息爬取一般无法满足我们的数据需求.对于一般的数据需求,我们通常需要从一个 ...
- python写一个简单的爬虫程序(爬取快手)(附源码)
快手是一个有意思的视频应用,但是它有一些视频不让下载,我们今天就用爬虫来实现爬取不让下载的视频: 首先右键点击检查,我们可以看见找到了视频的src,访问这个src就可以得到视频的下载网址,如下: 右键 ...
- 爬虫入门案例——爬取电影信息
综述:先介绍开发环境,在介绍从豆瓣电影上面爬取电影的电影名称,电影信息,电影剧照等信息,最终效果是以电影名称为文件夹名,文件夹包含一个txt文件和许多张剧照.如下图所示1是电影名,2是电影信息,3是各 ...
- 写一个简单的爬虫来批量爬取新浪网的新闻
如标题,学习爬虫也有一段时间了,今天来爬取一下新浪网的新闻(其实之前自己爬过,但是隔了好久发现新浪网的网页结构有一些变化导致之前的爬虫失效了,这两天进行了一下代码更新),话不多说,进入正题. 工具:A ...
- python爬虫实战笔记——爬取图书信息(利用selenium库+chromedriver.exe插件)
准备: 1.插件chromedriver.exe 2.已经安装好谷歌浏览器Chrome 编写代码 from bs4 import BeautifulSoup from selenium import ...
- Python爬虫教你爬取视频信息
大家好,我是拉斯,今天分享一个爬取某音视频的一个小案例,大家一起学习 目录 前言 基本环境配置 爬取目标视频 获取视频链接 1.查看网页源代码 2.抓包工具捕捉 下载视频(以mp4格式进行保存) 获取 ...
- 小菜鸟的第一个爬虫:豆瓣爬取电影信息
爬取页面: [2016年国内公映电影排期] #!/usr/bin/env python # -*- coding=utf-8 -*-import urllib.request import re im ...
- python爬虫六:爬取电影图片及简介
# -*- coding: utf-8 -*-#2345电影排行榜 import requests from bs4 import BeautifulSoup#获取网站的通用类 def get_htm ...
- python爬虫,记录爬取全球所有国家-首都的简单爬虫
python爬虫,记录爬取全球所有国家-首都的简单爬虫 本来以为简单至极,没想到获取数据还是花费了大把功夫.先上图 <table> <tr> <td> <st ...
最新文章
- python使用缩进作为语法边界-俄罗斯方块之Python实现代码(一)
- 手写自己的MyBatis框架-支持注解配置SQL
- 安装Scala时报UnsupportedClassVersionError
- C# 显式接口成员实现
- mysql在单片机移植_移植MySQL到嵌入式ARM平台
- 数据库每日一题 2020.04.30
- mysql 支持全文搜索_MySQL全文本搜索:启用全文本搜索支持
- redhat as4 上安装 MySQL5
- ios开发环境搭建教程
- vb mysql 5.1 adodb_VB 中 ADO、 ADODB、 ADODC 的区别与联系(皮毛)
- 读取金税盘、税控盘或税务Ukey基本信息
- 【飞行器】基于matlab四旋翼飞行器飞行控制系统【含Matlab源码 1266期】
- 跟我一起走进内联汇编的世界
- [深度学习论文笔记]3D AGSE-VNet: An Automatic Brain Tumor MRI Data Segmentation Framework
- 微信公众账号分为哪几类?区别是什么
- 如何新建一个ccs工程文件
- 使用tkinter实现 loading 等待效果
- 10款iOS高效开发必备的Objective-C类库(转)
- 麦克马斯特大学计算机的强项,麦克马斯特大学什么专业最好?
- 宣传python的顺口溜-Python3内置函数——reversed() = 翻转我的世界
热门文章
- php上传下载excel,PHPExcel 上传下载的示例代码
- 如何 调系统相机_数码单反相机攻略,了解测光模式的区别
- 原创 Spark go nsx很可爱的 公众号 vSAN 文章合集
- Mysql学习总结(34)——Mysql 彻底解决中文乱码的问题
- android开机动画多长时间_Android开机动画原理分析
- python钉钉扫码登录程序_使用python+django集成钉钉三方扫码登陆
- WebKit 内核浏览器 initKeyboardEvent 函数原型
- IOError: cannot open resource
- 多旋翼飞行器控制的难点
- Poj 1503 Integer Inquiry