python简单爬虫入门一_Python简单爬虫入门三
我们继续研究BeautifulSoup分类打印输出
前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信息,
等于我们已经只知道如何用工具去浏览和检索内容,但是实现只有你知道抓取的是什么,这时候
我们需要整理分类,给他们命名以及分类这样打印出来别人一看就知道标题是什么,内容是什么
#!usr/bin/env python#-*- coding:utf-8 -*-
from bs4 importBeautifulSoupimportrequestsimportjson
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',#'Cookie':'CNZZDATA1260535040=242528197-1478672438-null%7C1478672438',
}
url= 'http://www.beiwo.tv/index.php?s=vod-search-id-14-tid--area--year-$search_year-order-gold.html'wb_data= requests.get(url,headers=headers)
soup= BeautifulSoup(wb_data.text,'lxml')
imgs= soup.select("ul.img-list.clearfix > li > a > img")
titles= soup.select("ul.img-list.clearfix > li > h5")
yanyuans= soup.select("ul.img-list.clearfix > li > p")
stars= soup.select("p.star > em")
J_data={}
count=0for title,img,yanyuan,star inzip(titles,imgs,yanyuans,stars):
data={"title":title.get_text(),"img":img.get("src"),"演员":list(yanyuan.stripped_strings),"评分":star.get_text(),
}
J_data[count]=data
count+= 1
print(data)
with open("test.txt",'w') as f:
f.write(json.dumps(J_data))
我就直接把完整代码发出来一点点来说:
首先还是标准格式导入相应方法这里我多加了json用来保存抓去的数据,就用来放入txt文件内
headers伪装浏览器头文件简写方式,url是你抓去网页的地址(现在很多网站都有反爬保护越来越难爬取信息)
requests请求网页服务返回的数据wb_data给BeautifulSoup去解析用lxml格式
抓去的信息如下titles标题imgs图片yanyuans演员stars评分都加了s是因为返回的是抓去的每项全部相关信息以列表返回
J_data字典后面保存时的格式,count用来计数顺便用来当字典的Key键值,zip的方法我简单介绍如下:
可以把两个列表同一位置的值一一对应以元组返回行成新列表的方法在这里我是用他来分类输出我们抓去相应信息
最后用了常用的写入方法with可以不用写文件close关闭,处理完它会收拾后面操作,来看效果如下:
这里我们整理所有想要的数据及分类,这样打印出来相信给其它人看也知道是什么,由于评分与演员放在一个标签下所以没有演员名时会有点BUG
在来看看txt文档内保存了什么如下:
很多人说报错乱码什么的,其实\u6f14就是中文只是用unicode的编码的格式写入文本如果你在反向读取还是可以正常打印出来的(由于文件太长没法截取)
我们就在新建一个py文件简单教一下如何读取文件内容代码如下:
#!/usr/bin/env python#-*- coding:utf-8 -*-
importjson
with open('test.txt','r') as f:
dic=json.loads(f.readline())for i inrange(len(dic)):print(dic[str(i)])
导入json的方法模块
打开文件test.txt模式r读取并且命名f (上面生成的test.txt目录是当前目录,也就是3个文件是放在一起的,如果要写在其它地方请写相对路径)
由于只有一行所以f.readline()读取刚才大家看到unicode编码的文件以json.load的方式读取,你是以json.dumps写入所以读取相应,返回的类型字典dic
用一个循环来通过字典的key来看到value就是刚才的内容效果如下:
目前已经把基本的BeautifulSoup的基础用法方法讲完了,其实还可以做很多扩展比如把抓去的数据存入mysql或其它数据库等,写入xls表格,由于我这里主要介绍BeautifulSoup,没有介绍到,但是可以做就当扩展练习吧
大家可以去学习数据库的基本用法和语句在结合这个爬去存放,也可以学习python表格的第三方模块把数据写入excel内这样也可以显得更加专业。最后还是提醒只有多练习才能熟练运用这些工具,并且发现问题,
思考,解决与提高。最后也感谢能观看到此的同学和朋友们,我也会随后时不时更新讲解更好用的库与方法。
python简单爬虫入门一_Python简单爬虫入门三相关推荐
- python网络爬虫的特点_Python网络爬虫(一)- 入门基础
目录: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程 ...
- python爬虫实践报告_Python网络爬虫从入门到实践
本书讲解了如何使用Python编写网络爬虫,涵盖爬虫的概念.Web基础.Chrome.Charles和Packet Capture抓包.urllib.Requests请求库.lxml.Beautifu ...
- python队列来做什么_python分布式爬虫中的消息队列是什么?
当排队等待人数过多的时候,我们需要设置一个等待区防止秩序混乱,同时再有新来的想要排队也可以呆在这个地方.那么在python分布式爬虫中,消息队列就相当于这样的一个区域,爬虫要进入这个区域找寻自己想要的 ...
- python网络爬虫资源库名_Python网络爬虫
网友NO.524767 Python网络爬虫与信息提取(实例讲解) 课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.B ...
- python爬虫实践目的_Python编写爬虫实践
爬虫的基本流程 网络爬虫的基本工作流程如下: 首先选取一部分精心挑选的种子URL 将种子URL加入任务队列 从待抓取URL队列中取出待抓取的URL,解析DNS,并且得到主机的ip,并将URL对应的网页 ...
- 爬虫python爬取页面请求_Python网络爬虫第三弹《爬取get请求的页面数据》
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...
- 大学python期末考试突击怎么办_Python突击-从入门到精通到项目实战
模块的概念 安装pip 多个虚拟python环境 测试驱动开发模式 Python语言要素介绍 2.详解Python数据类型 列表和列表解析 生成器表达式 元组 字符串 字符串之中文处理 字典 集合 3 ...
- python简单爬虫入门一_Python简单爬虫入门二
接着上一次爬虫我们继续研究BeautifulSoup 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们BeautifulSoup的基本结 ...
- python爬虫今日头条_python 简单爬取今日头条热点新闻(
今日头条如今在自媒体领域算是比较强大的存在,今天就带大家利用python爬去今日头条的热点新闻,理论上是可以做到无限爬取的: 在浏览器中打开今日头条的链接,选中左侧的热点,在浏览器开发者模式netwo ...
最新文章
- sqlite3自增key设定(创建自增字段)
- Spring学习9之静态代理再理解
- logback输出日志到sentry
- zookeeper 运维
- php上传文件到七牛云
- Form的is_valid校验规则及验证顺序
- Dubbo服务端暴露全流程
- python装饰器 property_介绍Python的@property装饰器的用法
- 你可能需要为你的 APP 适配 iOS 11
- tps是什么意思_系统了解精益生产系统TPS精益思想丛书介绍
- 【转载】socket as an IPC
- 大学计算机二级的试题,大学计算机二级考试试题及其答案_..doc
- 数据库设计时设计标识字段的一些思考
- matlab2013 应用程序,Matlab2013a 下载
- 常用正则表达式匹配(中文字符)
- Cameralink视频数据信号
- 硼替佐米大鼠血清白蛋白RSA纳米粒|布立尼布小麦麦清白蛋白纳米粒|马赛替尼豆清白蛋白纳米粒(齐岳)
- C++MFC控件属性的解释
- 【Axure高保真原型】上传表格数据
- python爬虫:搜狗微信公众号文章信息的采集(https://weixin.sogou.com/),保存csv文件
热门文章
- 具体应如何办理股票开户?
- 南京2级计算机成绩查询,南京审计大学教务管理系统登录入口、成绩查询网上选课查分...
- 中国IT研发实力最强的城市分析(转载)
- Codeforces Round #207 (Div. 2)C. Knight Tournament
- 极客时间 Redis核心技术与实战 笔记(基础篇)
- python 不安全的包或方法_Python中的10个常见安全漏洞及修复方法
- 关于计算机专业励志的话,电脑行业励志语录
- 信息系统项目管理知识--项目立项管理
- 通俗易懂的讲解二极管三极管工作原理
- 研究生挂职锻炼-面试问答演练