鱼C论坛

 找回密码
 立即注册
查看: 1447|回复: 6

[已解决]beautiful soup find_all()查找丢失部分内容

[复制链接]
发表于 2020-10-12 16:19:45 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 罗同学 于 2020-10-12 16:22 编辑

帮女票爬一个小说(网上找不到资源),某乎连在的那种,这一页手动查看应该是有5个class = 'ContentItem-title'的标签的,可以从里面获取每一章的链接,但是不知道为啥每次find_all()只能返回前两个,后面的就给吞了,换别的页面也是只能找到前两个。求大佬帮助。


再默默问一嘴、正文里面带链接是会被和谐么、前面发了几次带链接的都发不出去,然后在“我的帖子”里面还会显示,但是帖子打不开。链接放1楼了。
最佳答案
2020-10-12 17:44:08
罗同学 发表于 2020-10-12 17:42
F12查看网页代码的时候确实是有的

你看到额网页源码和python获取额,不一定是一模一样的!

这个是一定要注意的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-12 16:20:22 | 显示全部楼层
链接:https://www.zhihu.com/people/meng-wa-83-63/posts?page=3
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 17:17:50 | 显示全部楼层
这样可以了,用正则。。。。。。。。。。beautifulsoup不知道怎么用,正则有时更方便
  1. import requests
  2. import re

  3. url = 'https://www.zhihu.com/people/meng-wa-83-63/posts?page=3'
  4. headers = {
  5.     'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36 Edg/86.0.622.38'}
  6. response = requests.get(url=url, headers=headers)
  7. html_str = response.content.decode()

  8. partten = r'"content":"(.*?)","commentCount"'
  9. data = re.findall(partten, html_str)

  10. # print(data)
  11. # print(len(data))
  12. with open('test.txt', 'w', encoding='utf-8') as f:
  13.     for i in data:
  14.         a = i.replace(r'\u003Cp\u003E', '\n').replace(r'\u003C\u002Fp\u003E', '\n').replace(
  15.             r'\u003Cp class="ztext-empty-paragraph"\u003E\u003Cbr\u002F\u003E', '\n')
  16.         f.write(a)
  17.         f.write('\n')
  18.         f.write('\n')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-12 17:31:30 | 显示全部楼层
疾风怪盗 发表于 2020-10-12 17:17
这样可以了,用正则。。。。。。。。。。beautifulsoup不知道怎么用,正则有时更方便

大佬、刚跑了一下代码、这个是直接保存了小说、是想爬那个链接里面有的好几章的地址、正则太难了、但还是谢谢大佬。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 17:41:14 | 显示全部楼层
罗同学 发表于 2020-10-12 17:31
大佬、刚跑了一下代码、这个是直接保存了小说、是想爬那个链接里面有的好几章的地址、正则太难了、但还是 ...


你确定你获取的网页信息中有你要的数据?你看到额网页源码和python获取额,不一定是一模一样的,你要在python获取的源码里找数据
只找到两个链接,另外两个链接没有获取到,所以你find_all也没找到

  1. link_parrten=r'class="ContentItem-title"><a href="//(.*?)" target="_blank"'
  2. link_data=re.findall(link_parrten, html_str)
  3. print(link_data)
复制代码

['zhuanlan.zhihu.com/p/73599879', 'zhuanlan.zhihu.com/p/72621342']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-12 17:42:23 | 显示全部楼层
疾风怪盗 发表于 2020-10-12 17:41
你确定你获取的网页信息中有你要的数据?你看到额网页源码和python获取额,不一定是一模一样的,你要在 ...

F12查看网页代码的时候确实是有的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-12 17:44:08 | 显示全部楼层    本楼为最佳答案   
罗同学 发表于 2020-10-12 17:42
F12查看网页代码的时候确实是有的

你看到额网页源码和python获取额,不一定是一模一样的!

这个是一定要注意的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 02:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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