访问某些网站时,会出现动态加载的问题
<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,获取详细信息
通过网络分析发现某个链接中返回了大量的文档
{"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('.')[0]
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()
|