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()
``` 支持楼主,虽然我是小白,虽然我一点不懂,但是我占了沙发了。顶楼主一下!嘎嘎嘎嘎 这个方法不错,支持! 用requests作者的requests-html可能会更加方便,不用去提取提供数据的链接。 好像没有这么复杂。列表项直接获取所有章节链接,判断章节链接里面是否有下一页,有就继续请求下一页获取内容,加在一起就行。 这个确实是很常见的方法 支持楼主,虽然我是小白,虽然我一点不懂,但是我占了沙发了。顶楼主一下!嘎嘎嘎嘎 CC7 发表于 2024-1-30 11:26
用requests作者的requests-html可能会更加方便,不用去提取提供数据的链接。
感谢,用selenium搞还是占用太高了,不知道用这个效果怎么样,改天试试。
页:
[1]