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

打开网页链接: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. The required Server component failed to start so Tomcat is unable to start问题解决
  2. 吴恩达《Machine Learning》精炼笔记 9:PCA 及其 Python 实现
  3. jp在java中无法编译_JPanal上加图片的问题!
  4. 计算机网络常见英文缩写
  5. 以太网交换芯片行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  6. 五、eclipse如何创建一个ftl(FreeMarker)的文件和设置ftl文件的显示风格(ftl文件高亮显示)
  7. IE浏览器为什么打不开java_IE浏览器拒绝访问的原因及其解决方法。
  8. Unity5.3官方VR教程重磅登场-系列4 VR中的用户界面
  9. import settings 错误
  10. xlsx文件怎么打开?3种方法:Excel+WPS+兼容包来搞定
  11. 《72个促成交易的经典技巧:…
  12. 1038 01背包动态规划
  13. TCP网络调试助手上提示错误:“1035 未知错误”的有效解决方法,本人实测确实可行
  14. android 高德卫星地图数据,白马地图 Bmap for Android v7.3.81 强大高德百度地图应用|张小北...
  15. 英语口语8000句 pdf_英语口语 — Track 01表达技巧
  16. “我知道”和“我做到了”的差距
  17. linux磁盘文件格式转换,使用Fstransform在Linux下无损转换文件系统格式
  18. apache 配置http跳转https
  19. 冷知识点:COLLATE 关键字是什么意思?
  20. Medium题目总结

热门文章

  1. 影响英语单词拼写的6大因素
  2. 离线渲染与实时渲染杂谈 ——从发布会上的产品展示说起
  3. 关于amd cpu超频 个人心得
  4. 凝思磐石linux系统怎么切双屏_linux系统下怎么设置双屏拼接
  5. 【Linux】Linux环境基础开发工具的使用 ———(yum、vim、gccg++、gdb、make/Makefile、进度条 、git)
  6. 一百块组装可玩LOL的电脑
  7. java监听剪贴板_Java监视系统剪贴板
  8. 计算机网络显示红X无法连接,电脑无线网络连接不上,出现了红x❌
  9. 使用Tibco项目docker部署报错异常
  10. bzoj4816[SDOI2017]数字表格