鱼C论坛

 找回密码
 立即注册
查看: 1694|回复: 11

[已解决]爬虫豆瓣top250

[复制链接]
发表于 2020-6-27 17:37:08 | 显示全部楼层 |阅读模式
20鱼币
小甲鱼视频里面,关于找出一共有多少页面,beautifulsoup的划红线部分没看明白
  1. def find_depth(res):
  2.     soup = BeautifulSoup(res.text,'html.parser')
  3.     depth = soup.find('span', class_='next').previous_sibling.previous_sibling.text
  4.     #a = str(re.findall(r'*',soup.a['href'])
  5.     depth = int(depth)
  6.     return depth   
复制代码
最佳答案
2020-6-27 17:37:09
本帖最后由 suchocolate 于 2020-6-27 19:12 编辑

不知道网址,看不到网页代码,只从语法上看就是:
soup.find('span', class_='next').previous_sibling.previous_sibling.text
1)('span', class_='next'):找class为next的span节点
2)previous_sibling.previous_sibling:这个节点的兄弟(同级)节点往前数2个节点
3)text:的文本。

批注 2020-06-27 173342.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-27 18:58:54 | 显示全部楼层

那应该返回的是9才对,为啥最后返回的是10

一开始找到的节点是这一个,那应该返回的是9才对,为啥最后返回的是10

一开始找到的节点是这一个,那应该返回的是9才对,为啥最后返回的是10

前移两个兄弟节点之后是这个

前移两个兄弟节点之后是这个
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-27 19:01:57 | 显示全部楼层
suchocolate 发表于 2020-6-27 18:31
不知道网址,看不到网页代码,只从语法上看就是:
soup.find('span', class_='next').previous_sibling.pr ...

那应该返回的是9才对啊,为啥返回的是10

一开始定位这个地方

一开始定位这个地方

前移两个兄弟节点变成这里

前移两个兄弟节点变成这里
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-27 19:44:52 | 显示全部楼层
suchocolate 发表于 2020-6-27 19:16
那你能不能贴出你的网站和所有代码,让我们和你一起分析分析,没有网址和代码,你让我们猜你怎么写的吗? ...
  1. from bs4 import BeautifulSoup
  2. import requests

  3. def url_open(url):
  4.     headers = {'user-agent':
  5.                    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36'
  6.                }
  7.     res = requests.get(url, headers=headers)

  8.     return res

  9. url = 'https://movie.douban.com/top250'
  10. res = url_open(url)
  11. soup = BeautifulSoup(res.text, 'html.parser')
  12. depth = soup.find('span', class_='next').previous_sibling.previous_sibling.text
  13. depth = int(depth)
  14. print(depth)
复制代码

就这段
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-27 20:55:52 | 显示全部楼层
suchocolate 发表于 2020-6-27 20:34
bs的previous/next_sibling空白(空白换行)也算兄弟节点。

这个“空白”和“event”我的不显示啊,这个咋设置
捕获.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-13 06:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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