鱼C论坛

 找回密码
 立即注册
查看: 1458|回复: 7

[已解决]爬虫在 确定爬取网页数量 的疑难杂症 depth

[复制链接]
发表于 2019-6-17 17:07:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在观看爬取豆瓣top250视频之后,练习爬取大众点评网站数据。
这段代码:

  1. #找出一共多少页
  2. def find_depth(res):
  3.     soup = bs4.BeautifulSoup(res.text,'html.parser')
  4.     depth = soup.find('span',class_ = 'PageMore').previous_sibling.previous_sibling.text

  5.     return int(depth)
  6. def main():
  7.     host = 'http://www.dianping.com/tianjin/ch10/g110o3'
  8.     res = open_url(host)
  9.     depth = find_depth(res)
复制代码


提示报错为:AttributeError: 'NoneType' object has no attribute 'previous_sibling'。

不知道为辽什莫,请大神指点哇  
最佳答案
2019-6-17 19:16:05
你看错地方了,你找span标签干什么??
  1. <div class="page">
  2.                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p48" data-ga-page="48" class="prev" title="上一页">上一页</a>

  3.                         <a href="http://www.dianping.com/tianjin/ch10/g110o3" data-ga-page="1" class="PageLink" title="1">1</a>
  4.                         <span class="PageMore">...</span>

  5.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p45" data-ga-page="45" class="PageLink" title="45">45</a>
  6.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p46" data-ga-page="46" class="PageLink" title="46">46</a>
  7.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p47" data-ga-page="47" class="PageLink" title="47">47</a>
  8.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p48" data-ga-page="48" class="PageLink" title="48">48</a>
  9.                                         <a class="cur">49</a>
  10.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p50" data-ga-page="50" class="PageLink" title="50">50</a>


  11.                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p50" data-ga-page="50" class="next" title="下一页">下一页</a>
  12.         </div>
复制代码

你要找的是
class=page里面的class= PageLink的a标签的最后一个。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-6-17 17:13:16 | 显示全部楼层
往上飘一飘
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-17 19:16:05 | 显示全部楼层    本楼为最佳答案   
你看错地方了,你找span标签干什么??
  1. <div class="page">
  2.                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p48" data-ga-page="48" class="prev" title="上一页">上一页</a>

  3.                         <a href="http://www.dianping.com/tianjin/ch10/g110o3" data-ga-page="1" class="PageLink" title="1">1</a>
  4.                         <span class="PageMore">...</span>

  5.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p45" data-ga-page="45" class="PageLink" title="45">45</a>
  6.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p46" data-ga-page="46" class="PageLink" title="46">46</a>
  7.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p47" data-ga-page="47" class="PageLink" title="47">47</a>
  8.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p48" data-ga-page="48" class="PageLink" title="48">48</a>
  9.                                         <a class="cur">49</a>
  10.                                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p50" data-ga-page="50" class="PageLink" title="50">50</a>


  11.                         <a href="http://www.dianping.com/tianjin/ch10/g110o3p50" data-ga-page="50" class="next" title="下一页">下一页</a>
  12.         </div>
复制代码

你要找的是
class=page里面的class= PageLink的a标签的最后一个。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-18 08:41:01 | 显示全部楼层
本帖最后由 我打人很温柔的 于 2019-6-18 11:09 编辑
wongyusing 发表于 2019-6-17 19:16
你看错地方了,你找span标签干什么??

你要找的是


非常感谢大神的回答呀。
一开始是找错这个标签了。
我想把这些50个页面全抓取的话,是不是应该按教学照视频里的那样,找第13行 ,然后加上两个 .previous_sibling.previous_sibling.text ?

我想找的是这行代码
  1.   <a href="http://www.dianping.com/tianjin/ch10/g110o3p50" data-ga-page="50" class="next" title="下一页">下一页</a>
复制代码


不知道该在
  1. depth = soup.find
复制代码
里怎么编辑了 ,还是没很清楚的搞懂代码的编辑语言标准
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-18 11:10:50 | 显示全部楼层
wongyusing 发表于 2019-6-17 19:16
你看错地方了,你找span标签干什么??

你要找的是

非常感谢大神的回答呀。
一开始是找错这个标签了。
我想把这些50个页面全抓取的话,是不是应该按教学照视频里的那样,找第13行 ,然后加上两个 .previous_sibling.previous_sibling.text ?

我想找的是这行代码
  1.   <a href="http://www.dianping.com/tianjin/ch10/g110o3p50" data-ga-page="50" class="next" title="下一页">下一页</a>
复制代码


不知道该在
  1. depth = soup.find
复制代码
里怎么编辑了 ,还是没很清楚的搞懂代码的编辑语言标准
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-18 14:22:37 | 显示全部楼层
wongyusing 发表于 2019-6-17 19:16
你看错地方了,你找span标签干什么??

你要找的是

请问一下这个代码应该怎么写合适呢?我能理解了这个含义,但是不知道该怎么去写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-19 18:46:41 | 显示全部楼层
我打人很温柔的 发表于 2019-6-18 14:22
请问一下这个代码应该怎么写合适呢?我能理解了这个含义,但是不知道该怎么去写

这里的代码,写起来真的不难,
要怪就怪 小甲鱼没有教你们bs4的select方法。
本来面对新手就应该教select方法。
居然教了find方法。无语。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-19 20:19:58 | 显示全部楼层
wongyusing 发表于 2019-6-19 18:46
这里的代码,写起来真的不难,
要怪就怪 小甲鱼没有教你们bs4的select方法。
本来面对新手就应该教sele ...

心碎成渣 分析后各种试但是一直报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 11:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表