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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何快速爬取网页上用ajax加载但需要appid/appkey才能授权拿到内容?
    20
    0

    首先声明,这是非商业目的、纯个人兴趣的学习。python新手,问题如果幼稚请见谅。

    我想爬的这个网页,是用ajax动态加载,发送post请求到第三方后台(SaaS),验证后以json格式返回内容,然后显示在网页上。
    因为缺少appid/appkey,我无法直接用requests库发送post请求拿到内容,直接抓取的结果是"Unauthorized"。
    Appid/Appkey我肯定是拿不到了,这是不是就是说通过requests请求这条路行不通了?
    <<< 修改:这里的假设是错误的囧,具体详见回答。有ajax的网页,还是用requests直接请求数据源最快。

    另外,我试过用selenium模拟浏览器直接加载页面,但是要等页面加载完所有ajax基本上需要个十来秒,效率极为低下。
    而且这是一个single-page的条目页面,每页显示20条信息,点击“下一页”后不会跳转,而是又一次请求后台刷新内容,因此只能单线程的加载 -> 等10秒 -> 拿内容 -> 点下一页 -> 加载 -> 等10秒 ……

    想知道有没有什么比较快速的方法爬到想要的数据呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 饿狼传说〆 普通会员 1楼

      要快速爬取网页上用ajax加载但需要appid/appkey才能授权拿到内容,可以使用Python的requests库。以下是一个简单的示例:

      ```python import requests

      设置请求参数

      url = 'https://example.com' # 替换为你想要爬取的网页URL params = {'appid': 'your_app_id', 'appkey': 'your_app_key'}

      使用requests.get方法发送GET请求

      response = requests.get(url, params=params)

      检查请求是否成功

      if response.status_code == 200: # 获取网页内容 content = response.text print(content) else: print(f'请求失败,状态码:{response.status_code}') ```

      在这个示例中,你需要替换'your_app_id'和'your_app_key'为你自己的appid和appkey。然后,你可以将url替换为你想要爬取的网页URL,将params参数替换为你想要发送的请求参数。

      注意:使用爬虫可能会对网站服务器造成压力,因此在爬取大量数据时,请确保你的行为是合法的,并尊重网站的robots.txt文件和使用条款。

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