传送门:【python爬虫入门练习】正则表达式爬取猫眼电影TOP100排行榜,openpyxl保存本地excel文件
对于上文使用的正则表达式匹配网页内容,的确是有些许麻烦,替换出现任何的差错都会导致匹配不上的情况,本文将介绍一种更简便更流行的匹配方式:beautifulsoup
首先,安装beautifulsoup:pip install beautifulsoup4
其次,python是自带标准解析器的,但是更建议使用执行速度更快,文档容错能力强的lxml,安装:pip install lxml
导入方法:from bs4 import Beautifulsoup4
同样的我们先拿到网页源代码

在<dd></dd>中间,直接通过目标信息的标签来定位,相同的标签,通过加属性条件来区分:

from bs4 import BeautifulSoupdata = []
def page(text):soup = BeautifulSoup(text, 'lxml')for s in soup.find_all('dd'):datalist = {'排名': s.find('i').get_text(), '电影名称': s.find('p', class_="name").get_text(),'主演': s.find('p', class_="star").get_text().strip()[3:],'上映时间': s.find('p', class_="releasetime").get_text().strip()[5:],'评分': s.find('p', class_="score").get_text()}data.append(datalist)

是不是清晰明了很多,就这样匹配这一步就搞定了,然后我们来说下导出,在前一篇,我们是通过openpyxl方式导出数据到本地Excel,下面介绍一种新的方式,通过pandas导出,更适合大数据量的处理
安装:pip install pandas

import pandasdef writeexcel(localfile, text):pandas.DataFrame(text,columns=['排名','电影名称','主演','上映时间']).to_excel(localfile,index=False)

一行代码,搞定,解释一下,默认的导出文件会在第一列生成序号,我们可以通过 index=False 来取消这个操作
放一下全部代码

import requests
import threading
from bs4 import BeautifulSoup
import pandasdef login(url):req = requests.get(url)if req.ok:return req.content.decode('utf-8')else:return Nonedata = []def page(text):soup = BeautifulSoup(text, 'lxml')for s in soup.find_all('dd'):datalist = {'排名': s.find('i').get_text(), '电影名称': s.find('p', class_="name").get_text(),'主演': s.find('p', class_="star").get_text().strip()[3:],'上映时间': s.find('p', class_="releasetime").get_text().strip()[5:],'评分': s.find('p', class_="score").get_text()}data.append(datalist)def writeexcel(localfile, text):pandas.DataFrame(text, columns=['排名', '电影名称', '主演', '上映时间']).to_excel(localfile, index=False)def main(i):html = login('https://maoyan.com/board/4?offset=' + str(10 * i))page(html)if __name__ == '__main__':Threadtest = [threading.Thread(target=main, args=[i, ]) for i in range(10)]for t in Threadtest:t.start()t.join()excelpath = 'C:\\Users\\ll\\Desktop\\film.xlsx'writeexcel(excelpath, data)

python爬虫入门练习:BeautifulSoup爬取猫眼电影TOP100排行榜,pandas保存本地excel文件相关推荐

  1. Python爬虫实战Pro | (1) 爬取猫眼电影Top100榜单

    在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的序号,片名,主演,上映日期,评分和封面等内容. 之前在Python爬虫实战(1)中我们曾爬取 ...

  2. Python爬虫入门 | 7 分类爬取豆瓣电影,解决动态加载问题

      比如我们今天的案例,豆瓣电影分类页面.根本没有什么翻页,需要点击"加载更多"新的电影信息,前面的黑科技瞬间被秒--   又比如知乎关注的人列表页面:   我复制了其中两个人昵称 ...

  3. python爬虫猫眼电影票房_python爬取猫眼电影top100排行榜

    爬取猫眼电影TOP100(http://maoyan.com/board/4?offset=90) 1). 爬取内容: 电影名称,主演, 上映时间,图片url地址保存到mariadb数据库中; 2). ...

  4. Python爬虫之requests+正则表达式抓取猫眼电影top100以及瓜子二手网二手车信息(四)...

    requests+正则表达式抓取猫眼电影top100 一.首先我们先分析下网页结构 可以看到第一页的URL和第二页的URL的区别在于offset的值,第一页为0,第二页为10,以此类推. 二.< ...

  5. Python爬虫实战003:爬取豆瓣电影分类排行榜

    import requests import jsonif __name__ == '__main__':url = "https://movie.douban.com/j/chart/to ...

  6. 利用正则表达式爬取猫眼电影TOP100信息

    本文利用requests库和正则表达式爬取了猫眼电影TOP100电影信息,并将电影封面和标题.主演等文字信息保存在了本地.本文完整代码链接:https://github.com/iapcoder/Ma ...

  7. Python爬取猫眼电影TOP100榜

    Python爬取猫眼电影TOP100榜 兴趣点: 这个没什么特别的兴趣,只是单纯爬猫眼练手的人太多了,所以我也打算加入他们,对猫眼员工说一声不好意思了,哈哈哈! 爬取网址: 传送门:https://m ...

  8. 爬虫实战4:爬取猫眼电影排名Top100的详细数据保存到csv文件

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 猫眼电影 完整代码 运行结果 猫眼电影 完整代码 import time import requests import re i ...

  9. python爬虫(一)爬取豆瓣电影排名前50名电影的信息

    python爬虫(一)爬取豆瓣电影排名前50名电影的信息 在Python爬虫中,我们可以使用beautifulsoup对网页进行解析. 我们可以使用它来爬取豆瓣电影排名前50名的电影的详细信息,例如排 ...

最新文章

  1. 谈谈 Docker 网络
  2. 《ArcGIS Engine+C#实例开发教程》第三讲 MapControl与PageLayoutControl同步
  3. 关于KernelFaultCheck启动项
  4. Android开发之assets目录下资源使用总结
  5. 【无码专区9】序列统计(带权并查集 + 前缀和建边 + dp)
  6. edmonds算法matlab,匈牙利算法的matlab实现
  7. java+语音识别+谷歌_JAVA使用谷歌语音识别API
  8. JavaScript设计模式(一)-- 简单工厂模式
  9. Android应用程序组件间通信(二)——IntentFilter类简介
  10. JAVA喝咖啡的关系_写完java就去喝咖啡,很合适。
  11. coap python_一步步搭建物联网系统——RESTful的CoAP协议
  12. COOC+VOSviewer可取代任何文献计量与知识图谱软件
  13. CATIA V5 R24 2014安装教程
  14. Maven项目自动更新/修复Javadoc
  15. python服务器性能测试工具locust使用指南
  16. html 引入gif 不会动,GIF图片在电脑上不会动的解决办法
  17. jquery/jquery-3.5.1.min.js net::ERR_ABORTED 404 (Not Found)
  18. 微信小程序navigationBarTitleText导航栏标题设置
  19. tart-dfs.sh 和start-all.sh的区别
  20. PCL点云边界特征检测 (附完整代码 C++)

热门文章

  1. linux 可选参数,Linux 基本工具(virt-install --os-variant 可选值)
  2. 林大OJ习题 2020年1月14日
  3. 浙江国税VPDN虚拟连接软件下载及安装步骤详解
  4. 三十条操盘手总结的操盘铁律经验
  5. pfSense ntopng插件的使用
  6. c#背单词小程序视频_C#用timer实现背单词小程序(B版)
  7. 淘宝的商品json文件, 保存电脑是用json后缀保存,文件名要跟代码引用文件名一样
  8. 专题:固体力学中应力与应变分析详解(1.应力分析 2.符号 3.一般的三维应力场)...
  9. 第二课 如何在WINDOWS环境下搭建以太坊开发环境
  10. oppo8.0系统设备一键激活XPOSED框架的经验