python爬取豆瓣热门电影信息,python爬取豆瓣电影排行榜

  python爬取豆瓣热门电影信息,python爬取豆瓣电影排行榜

  序

  本文文字和图片均来自互联网,仅供学习交流,无商业用途。如有问题,请及时联系我们进行处理。

  PS:如果需要Python学习资料,可以点击下面的链接自行获取。

  Python免费学习资料和群发解决方案可以点击加入。

  1.爬行动物的基本原理

  我们抓取了中国最受欢迎的电影《红海行动》的信息。其实爬虫获取web信息的原理和人工获取信息的原理基本相同。

  人工操作步骤:

  1.获取电影信息页面

  2.定位(查找)评分信息的位置

  3.复制并保存我们需要的评分数据。

  爬虫操作步骤:

  1.请求和下载电影页面信息

  2.分析和定位评分信息。

  3.保存评分数据。

  综合言之,原理图如下:

  2.爬虫的基本流程

  简单来说,我们向服务器发送请求后,会得到返回的页面;在解析页面之后,我们可以提取我们想要的信息,并将其存储在指定的文档或数据库中。就这样,我们想要的信息被我们“爬”了下来~

  3.安装python依赖包请求Xpath

  Python里有很多爬虫相关的包:Urllib,requsts,bs4……先说简单的请求xpath!更高级的BeautifulSoup还是有点难度的。

  然后我们安装requests xpath的应用包来抓取豆瓣电影:

  在Windows终端中输入以下两行代码:

  pip install requests

  pip install lxml

  4.代码排序——获取豆瓣电影的目标网页,进行分析。

  我们想获取豆瓣电影《红海行动》的相关信息。目标地址是:https://movie.douban.com/subject/26861685/.

  给定url,使用requests.get()方法获取页面的文本,并使用etree.HTML()解析下载的页面数据“data”。

  5.获取电影名称。

  获取元素的Xpath信息并获取文本:

  File=s.xpath(元素/文本的xpath信息())

  这里的“元素的Xpath信息”需要通过定位目标元素,点击网站手动获取:右键 检查

  快捷键“shift ctrl c”,当你将鼠标移动到相应的元素上,就可以看到相应的网页代码:

  依次点击右键 Copy Copy XPath对应电影名称的代码,得到电影名称的Xpath:

  这样,我们复制了元素中的Xpath信息:

  //*[@id=content]/h1/span[1]

  将它放入代码中并打印信息:

  film=s . XPath(//*[@ id= content ]/h1/span[1]/text())打印(film)

  6.代码和运行结果

  上面的完整代码如下:

  在Pycharm中运行完整的代码,结果如下:

  至此,我们完成了豆瓣电影《红海行动》中“电影名称”信息的代码编译,可以在Pycharm中运行。

  7.获取其他元素信息。

  除了片名,我们还可以获得导演、主演、片长等信息。以类似的方式。代码如下:

  看上面的代码,发现在获取不同的“主演”信息时,区别只是“span[x]”中“x”的数字大小不同。事实上,当你想一次性获得“主演”的所有信息时,只需使用不带数字的“A”即可。代码如下:

  actor=s.xpath(//*[@id="info"]/span[3]/span[2]/a/text())#主演

  完整的代码如下:

  在Pycharm中运行完整代码的结果如下:

  8.关于解析工件Xpath

  也就是Xpath是XML路径语言,是一种用来确定XML文档某一部分位置的语言。

  基于Xpath的树结构提供了在数据结构树中查找节点的能力。最初,Xpath被提出作为Xpointer和XSL之间的通用语法模型。但是Xpath很快被开发人员作为小型查询语言采用。

  解析Xpath网页的过程:

  1.首先,通过请求库获取网页数据。

  2.通过网页解析获得想要的数据或者新的链接。

  3.网页解析可以通过Xpath或者其他解析工具来完成。Xpath是一个非常有用的网页解析工具。

  基于的常用网页解析方法的比较

  正则表达式使用困难,学习成本高。

  BeautifulSoup性能较慢,比Xpath更难,在某些特定场景下很有用。

  Xpath简单易用,速度快(Xpath是lxml的一种),是入门的最佳选择。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: