• 某站现在更新的URL结构,现在要怎么爬-python


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 Hmd15818221230 2024-04-04 17:44 采纳率: 0% 浏览 3 首页/ 编程语言 / 某站现在更新的URL结构,现在要怎么爬-python pythonhttp正则表达式 不太清楚怎么搞,以前的格式不都是https://www.bilibili.com/video/BV1zN4y1v7Vv?p={i}&vd_source=39337c1f138c59082f588c8cf19d1eb8,现在变成这种加密的,要怎么搞? 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    2条回答 默认 最新

    • GISer Liu 2024-04-04 17:51
      关注

      该回答引用自GPT-3.5,由博主GISer Liu编写:

      针对您提出的问题,首先需要明确目前的情况是要爬取的网站更新了URL结构,导致无法像以前那样直接使用普通的URL进行爬取。针对这种情况,您可以考虑以下解决思路和方案:

      解决思路:

      1. 分析新的URL结构 :首先需要仔细分析新的URL结构,了解其中的规律和加密方式。
      2. 模拟加密过程 :根据分析的加密规律,编写程序模拟加密过程,生成正确的URL。
      3. 使用网络抓包工具 :利用网络抓包工具(如Fiddler、Wireshark等),分析网页加载过程中的请求,获取新URL的生成规律。
      4. 尝试直接访问 :有时候新的URL结构可能只是前端展示的加密,实际访问时可能仍然可以直接使用旧的URL结构。

        解决方案:

        根据以上思路,您可以采取以下步骤:
      5. 分析新的URL结构 :使用浏览器开发者工具查看页面元素,寻找新的URL结构。
      6. 模拟加密过程 :根据分析的结果,编写Python程序模拟加密过程,生成正确的URL。
      7. 使用网络抓包工具 :使用网络抓包工具分析网页加载过程,获取新URL的生成规律。
      8. 尝试直接访问 :尝试直接使用旧的URL结构访问页面,查看是否可以正常访问。

        示例代码:

        假设新的URL结构加密方式为Base64,可以使用以下Python代码生成正确的URL:
        pythonCopy code
        import base64
        def generate_new_url(video_id):
        encrypted_id = base64.b64encode(video_id.encode()).decode()
        new_url = f"https://www.example.com/video/{encrypted_id}"
        return new_url
        video_id = "BV1zN4y1v7Vv"
        new_url = generate_new_url(video_id)
        print(new_url)
        

        注意事项:

      • 网络数据抓取合法性 :在进行网络数据抓取时,需遵守网站的使用规定,避免违反法律法规。
      • 反爬虫策略 :有些网站可能设置了反爬虫策略,需要注意避免被封IP或限制访问。
        以上是针对您提出的问题的解决思路和方案,希望能帮助到您解决爬取网站更新URL结构的问题。

      如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

      展开全部

      评论
    • CSDN-Ada助手 CSDN-AI 官方账号 2024-04-04 20:13
      关注

      【相关推荐】



      • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7503069
      • 这篇博客你也可以参考下:如何利用Python爬虫爬取博主的全部文章的标题,文章标题的URL。可根据阅读量进行降序输出!
      • 您还可以看一下 龙豪杰老师的Python网络爬虫课程中的 拼装url小节, 巩固相关知识点
      • 除此之外, 这篇博客: python爬取二次元肥宅最喜欢的壁纸图片,看过的都说爱了中的 一、获取详情页url地址以及标题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

        在这里插入图片描述
        图片详情页是在 ul 标签里面的 li 标签下面的

        在这里插入图片描述
        所以只需要请求网址,网站是静态页面可以直接获取网页数据,但是网页文字是乱码,转码即可。。

        关于动漫类一共是16页数据

        '''
        # 第一页链接
        http://www.jj20.com/bz/ktmh/list_16_cc_14_1.html
        # 第二页链接
        http://www.jj20.com/bz/ktmh/list_16_cc_14_2.html
        # 第三页链接
        http://www.jj20.com/bz/ktmh/list_16_cc_14_2.html
        '''
        

        根据页码的改变对应的是第几页。

        一般情况如果想要找到翻页的效果,是需要从第二页开始找的。

        上述是已经找到答案的情况,但是实际情况你第一页的url是有所不同的

        http://www.jj20.com/bz/ktmh/list_16_cc_14.html

        实际上第一页url是没有页面参数的,只有到了第二页的时候才会有页码参数,然后你可以看第三页的url变化,就可以对比发现规则,然后根据规则拼接第一页的url地址,看是否也可以访问,如果可以,那么翻页规律就找到,如果不可以,那就要根据实际情况再作分析了。

        import requests
        import parsel
        
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
        }
        for page in range(1, 17):
            url = 'http://www.jj20.com/bz/ktmh/list_16_cc_14_{}.html'.format(page)
            response = requests.get(url=url, headers=headers)
            selector = parsel.Selector(response.text)
            lis = selector.css('body > div:nth-child(7) > ul li')
            for li in lis:
                page_url = 'http://www.jj20.com/' + li.css('a:nth-child(1)::attr(href)').get()
                title = li.css('a:nth-child(1) img::attr(alt)').get()
        

      如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    【图像分类】【深度学习】【Pytorch版本】Inception-ResNet模型算法详解
    单例模式你会几种写法?
    方法参数调用-两种情况
    如今摆地摊不比当年了
    ClickBench 最新跑分排行榜,黑马出现!
    C++使用二维码识别库Zbar识别二维码图像
    Docker 图形化界面管理工具 Portainer | 让你更轻松的管理 Docker
    概念解析 | 自动驾驶中的Corner Case剖析: 分类、处理方法和挑战
    WXML模板语法
    P8719 [蓝桥杯 2020 省 AB2] 字串排序题解
  • 原文地址:https://ask.csdn.net/questions/8083569