账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何用爬虫获取用框架写的网页的真实信息
    53
    0

    我想爬取网易云音乐的信息,但是发现http://music.163.com/#/artist...http://music.163.com/artist/album?id=3684这个网页上有
    我看了很多说是,他本身进行了刷新之后得到了http://music.163.com/artist/a...,那我用该怎么做才能获得http://music.163.com/artist/a...,不太想用selenium+phantomjs,有些太耗费资源了,我应该怎么模拟呢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 锻己 普通会员 1楼

      要获取使用框架(frameset)的网页的真实内容,你需要处理页面中的多个HTML文档。框架将一个网页分割成多个独立的子窗口(frame),每个子窗口都有自己的URL。

      以下是一个基本的Python爬虫示例,使用requestsBeautifulSoup库来抓取框架网页的内容:

      ```python import requests from bs4 import BeautifulSoup

      获取主页面

      main_url = 'http://example.com' # 框架网页地址 response = requests.get(main_url) soup = BeautifulSoup(response.text, 'lxml')

      查找所有的frame标签

      frames = soup.find_all('frame')

      遍历所有frame并获取其src属性(即子页面URL)

      for frame in frames: sub_url = frame['src'] sub_response = requests.get(sub_url) sub_soup = BeautifulSoup(sub_response.text, 'lxml')

      # 现在你可以解析子页面的内容了
      # 这里以打印子页面的标题为例
      print(sub_soup.title.string)
      

      如果需要处理iframe,查找方式类似,只是标签名称为'iframe'

      ```

      请注意,由于同源策略限制,不是所有frame的内容都能直接通过这种方式获取。对于跨域的frame,可能需要更复杂的方法或者无法直接获取。同时,部分网站可能会有反爬虫机制,需遵守相关法律法规及网站的Robots协议。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部