全球电影票房排行榜也是一个经常被用来讲网络爬虫的实例。我们同样用中国大学排名的代码,修改一下来爬取相应内容。

打开网页链接:http://www.piaofang.biz/,先来观察页面结构:

下面我们再来分析网页源代码:

1、网页中有"body"和"table"标签,没有"tbody"标签 。

2、有一个包含“排名”、“电影名”等六项内容的表头的“tr"子标签。

3、相比第2名,在第1名的子标签内,第1名前多了“全球电影票房排行榜”几个字。11名、21名好像也是一样。

4、阿凡达前也是有一个“a"标签。

5、 第10名和11名之间有一行空行。

解决思路:

1、对于空行问题。 增加一个if语句,判断列表长度是否为6。

2、表头和内容标签层级数不同,用“ulist.append()”时会出错,可以用“try-except"语句来解决。

3、第1名及第11名前的“全球电影票房排行榜”,用strip()来解决。

修改后的代码如下:

import requests
import bs4
from bs4 import BeautifulSoupdef getHTML_Text(url):try:kv = {'User-Agent':'Mozilla/5.0'}r = requests.get(url,timeout = 20 ,headers = kv)r.raise_for_status()# print('是否=200',r.status_code) #如果状态不是200,则产生网络访问异常r.encoding = r.apparent_encoding# print(r.request.headers) # 如不能正常访问网络,可参考其中内容修改kv中的信息。return r.textexcept:return '网络打开异常!'def fillList(ulist,html):soup = BeautifulSoup(html,'html.parser')for tr in soup.find('table').children:  # 网页上没有‘tbody’标签,用‘body’也不能成功。if isinstance(tr,bs4.element.Tag):tds = tr('td')# print('tds=', tds)if len(tds)>=6: # 去掉空列表,以防出错“list index out of range”try:ulist.append([tds[0].text.strip('全球电影票房排行榜'),tds[1]('a')[0].string,tds[2].string,tds[3].string,tds[4].string,tds[5].text])# strip('全球电影票房排行榜')用于删除第一名的前缀,用text代替string,防止下行出现“unsupported format string passed to NoneType.__format__”except:ulist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string, tds[4].string,tds[5].string])  # 提取标题else:pass# print(ulist)def print_all_result(ulist,num):tplt = "{0:>6}\t{1:{6}^18}\t\t{2:^6}\t{3:{6}^6}\t{4:{6}^16}\t{5:{6}>8}"for i in range(num):u = ulist[i]print(tplt.format(u[0].strip(),u[1].strip(),u[2].strip(),u[3].strip(),u[4].strip(),u[5].strip(),chr(12288)))def main():url = 'http://www.piaofang.biz/'html = getHTML_Text(url)result = []fillList(result,html)print_all_result(result,21)if __name__ == '__main__':main()

运行结果如下:

《python网络爬虫和信息提取》:全球电影票房排行榜(附更改后的代码)相关推荐

  1. Python网络爬虫与信息提取笔记(续篇)(文末附教学视频)只供教学讲解,请勿对有robots协议的网站(如淘宝网)造成骚扰

    接上篇博客:Python网络爬虫与信息提取笔记(文末附教学视频) 14:基于bs4库的HTML内容遍历方法 标签树的下行遍历: 用len(soup.body.contents)返回body标签的儿子节 ...

  2. python 网页爬虫作业调度_第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业. 4.提供图片或网站显示的学习 ...

  3. Python网络爬虫与信息提取(17)—— 题库爬取与整理+下载答案

    前言 上一节实现了题目的整理,没整理答案是不完整的,所以这一节加上答案的爬取. 上一节地址:Python网络爬虫与信息提取(16)-- 题库爬取与整理 效果 思路 爬答案有点难搞,像这种题库的答案都是 ...

  4. Python网络爬虫与信息提取(中国大学mooc)

    目录 目录 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 目标获取淘宝搜索页面的信息 理解淘宝的搜索接口翻页的处理 技术路线requests-refootnote 代码如下 股票数据定向爬虫 ...

  5. Python网络爬虫与信息提取

    1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests ...

  6. 北京理工大学·Python网络爬虫与信息提取·知识整理

    学习目标: python爬虫部分的学习 学习内容: mooc北京理工大学·Python网络爬虫与信息提取 对Scrapy内核依然一知半解,但mooc内容已经学完整理 后续将对Scrapy继续进行学习 ...

  7. MOOC《Python网络爬虫和信息提取》(第11次)网络爬虫之框架(第4周)

    MOOC<Python网络爬虫和信息提取>(第11次)网络爬虫之框架(第4周) MOOC–Python网络爬虫和信息提取(第11次开课) 网络爬虫之框架 21.08.10 目录 文章目录 ...

  8. Python网络爬虫与信息提取笔记08-实例2:淘宝商品比价定向爬虫

    Python网络爬虫与信息提取笔记01-Requests库入门 Python网络爬虫与信息提取笔记02-网络爬虫之"盗亦有道" Python网络爬虫与信息提取笔记03-Reques ...

  9. 嵩天《Python网络爬虫与信息提取》实例2:中国大学排名定向爬虫

    在介绍完requests库和robots协议后,嵩天老师又重点介绍了如何通过BeautifulSoup库进行网页解析和信息提取.这一部分就是在前面内容的基础上,综合运用requests库和Beauti ...

  10. Python网络爬虫与信息提取(11)—— 爬虫批量搜索音乐并下载

    前言 上一篇博客使用requests库加selenium库加Xpath解析html的技术路线下载了单首歌曲,但是存在一个问题:webdriver打开网页十分慢.这一节解决这个问题并修改代码批量下载. ...

最新文章

  1. linux存储--linux内存分配图(九)
  2. 如何使用纯 CSS 创建翻牌动画
  3. ios UITableView默认选中第一行
  4. Learning Cocos2d-x for WP8(7)——让Sprite动起来
  5. mysql 图片base64_关于图片的Base64编码
  6. 实现二维码-完整三种编码流程加代码解析(javascript)
  7. CCS实例,网页栏目
  8. hdfs shell
  9. 事务,动态代理,连接池
  10. Python爬虫之(三)urllib库
  11. 快速得到容器ID和veth bridge interface的关系
  12. 机器学习——信用卡反欺诈案例
  13. 学术规范作业——心得体会
  14. linux无法解析域名
  15. three.js之摄像机
  16. linux命令下jq的用法(curl 格式化输出json 字符串)
  17. 日语口语1.13 ジェトロの山本さんから部長のことをお伺いまして
  18. 【YOLOv7_0.1】网络结构与源码解析
  19. 基于PCA的图像压缩实现
  20. 【论文 CCF C】An Adaptive Box-Normalization Stock Index Trading Strategy Based on Reinforcement Learning

热门文章

  1. 云渲染服务器快吗?云渲染具体怎么用??
  2. 大数据处理应遵循的四大原则
  3. 计算机网络教程 笔记整理
  4. Unity Shader Color、HSV、HDRColor以及HDRColor面板转换源码分析
  5. uniapp使用uCharts制作趋势图
  6. 简单好用的苹果手机软件数据备份软件
  7. Android常用炫酷风格控件包含项目地址汇总
  8. 风儿轻轻地吹,沙儿轻轻地飘
  9. spring读取外部文件+SpEL
  10. php 公交查询,php公交车线路查询系统