DoveNest 发表于 2024-1-30 10:48

python解决使用requests解决网站动态加载的问题

# 访问某些网站时,会出现动态加载的问题


```html
<div class="link xb">
<a href="/chapter/299832/76.html" rel="next">上一章</a> <a href="/xiaoshuo/299832/" rel="index">章节列表</a>
<a href="/chapter/299832/78.html" rel="next">下一章</a>
正在进行转码阅读,不进行内容存储和复制
</div>
```
## 网页已经正常显示,通过F12却看不到具体内容

## 1.通用的解决办法为webdriver模拟获取信息。
###此处不讲解,网上有大量的讲解

## 2.通过分析网页的js,获取详细信息
通过网络分析发现某个链接中返回了大量的文档
```json
{"status":"success","info":{"content":"
<p>
    \u6240\u6709\u4eba\u60ca\u5446\u4e86\uff01
    <\/p>
      <p>
            \u4e3a\u4ec0\u4e48\u5927\u665a\u4e0a\u4f1a\u6709\u4e00\u53ea\u4ed3\u9f20\u9a91\u7740\u6469\u6258\u8f66\u5728\u8352\u91ce\u4e0a\u778e\u901b\u3002
            <\/p>
                                                .....
```
使用转链方法发现内容为返回的实际内容
···json
{
"status": "success",
"info": {
    "content": "<p> 所有人惊呆了!</p> <p> 为什么大晚上会有一只仓鼠骑着摩托车在荒野上瞎逛。</p> <p> 而且还用如此滑稽、戏剧性的方式,斩杀了一头精英高阶的接肢魔?</p> <p> 简直就......
}
```
继续分析该接口,则可以正常获取到内容:
整体代码:
```python
def unicode_type():
    url = 'https://www.zzqq178.com/chapter/299832/77.html'
    book_id = url.split('/')[-2]
    book_page = url.split('/')[-1].split('.')
    resp = requests.get(url)
    return re.search(r'.*hash = "(.*?)"', resp.text).group(1), book_id, book_page


def unicode_get_message():
    url = 'https://www.zzqq178.com/home/index/ajaxchapter'
    hash, book_id, book_page = unicode_type()
    data = {
      'id': book_id,
      'eKey': hash,
      'cid': book_page,
      'basecid': book_page
    }
    resp = requests.post(url, data=data)
    result=resp.json()["info"]["content"]
    print(result)


if __name__ == '__main__':
    unicode_get_message()
```

jingy0502uan 发表于 2024-1-30 10:56

支持楼主,虽然我是小白,虽然我一点不懂,但是我占了沙发了。顶楼主一下!嘎嘎嘎嘎

舞墨者 发表于 2024-1-30 11:02

这个方法不错,支持!

CC7 发表于 2024-1-30 11:26

用requests作者的requests-html可能会更加方便,不用去提取提供数据的链接。

magicianly 发表于 2024-1-30 11:30

好像没有这么复杂。列表项直接获取所有章节链接,判断章节链接里面是否有下一页,有就继续请求下一页获取内容,加在一起就行。

三滑稽甲苯 发表于 2024-1-30 12:36

这个确实是很常见的方法

PhoenixOe 发表于 2024-1-30 14:52

支持楼主,虽然我是小白,虽然我一点不懂,但是我占了沙发了。顶楼主一下!嘎嘎嘎嘎

PhiFever 发表于 2024-3-19 21:45

CC7 发表于 2024-1-30 11:26
用requests作者的requests-html可能会更加方便,不用去提取提供数据的链接。

感谢,用selenium搞还是占用太高了,不知道用这个效果怎么样,改天试试。
页: [1]
查看完整版本: python解决使用requests解决网站动态加载的问题