我们继续研究BeautifulSoup分类打印输出

Python简单爬虫入门一

Python简单爬虫入门二

前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信息,

等于我们已经只知道如何用工具去浏览和检索内容,但是实现只有你知道抓取的是什么,这时候

我们需要整理分类,给他们命名以及分类这样打印出来别人一看就知道标题是什么,内容是什么

#!usr/bin/env python
# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
import requests
import json 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 = 0
for title,img,yanyuan,star in zip(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 -*- import json with open('test.txt','r') as f:
dic = json.loads(f.readline()) for i in range(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内这样也可以显得更加专业。最后还是提醒只有多练习才能熟练运用这些工具,并且发现问题,

思考,解决与提高。最后也感谢能观看到此的同学和朋友们,我也会随后时不时更新讲解更好用的库与方法。

最新文章

  1. xp和win7安装telnet服务
  2. C#版本的历史
  3. LinearLayout嵌套
  4. zzuli oj 1135 算菜价
  5. PHP 个人用到的琐碎代码记录
  6. Java基础---Java---网络编程---TCP、UDP、UDP-键盘录入方式数据、Socket、TCP复制文件、UDP-聊天
  7. RBAC 几种常见的控制权限模型
  8. javascript&&jquery编写插件模板
  9. jmeter 压力测试(二) 获取不同格式的当前时间
  10. java框架注意
  11. Hbase常用Shell命令
  12. 选择、操作web元素
  13. hibernate显示完整的sql(转)
  14. CentOS编绎gcc
  15. crs_register/crs_unregister 注册与移除RAC服务 --zhuanzai
  16. [jOOQ中文]2. jOOQ与Spring和Druid整合
  17. javascript记住用户名和登录密码
  18. 后续博客转移到zhylj.cc
  19. JMeter基础之-使用技巧
  20. SqlServer 数据库读写分离【转】

热门文章

  1. PHPUnit笔记
  2. WCF学习之旅—请求与答复模式和单向模式(十九)
  3. SQL Saturday 北京将于7月25日举办线下活动,欢迎参加
  4. 【Win 10 应用开发】Sqlite 数据库的简单用法
  5. 【.net 深呼吸】自定义缓存配置(非Web项目)
  6. Parallel并行之乱用
  7. 前端学HTTP之URL
  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(28)-系统小结
  9. 2. Struts2 基础
  10. C# 本质论 第四章 方法和参数