|
|
10鱼币
本帖最后由 小木船 于 2018-6-2 20:59 编辑
目标网址是微信的一篇文章:在weixin.sogou.com输入‘风景’,搜索结果随便点一篇进去都可以的
def parse_detail(html):
doc = pq(html)
title = doc('#activity-name').text()
content = doc('.rich_media_content').text()
date = doc('#publish_time').text()
nickname = doc('.rich_media_meta_list .rich_media_meta_nickname .profile_nickname').text()
wechat = doc('#js_profile_qrcode > div > p:nth-child(3) > span').text()
return {
'title': title,
'content': content,
'date': date,
'nickname': nickname,
'wechat': wechat
}[/code]
使用text(),文章的标题title获取不到,得到的是<script>标签内的内容,就是那个if else的文本,见附图;
date也是获取不到,是空的;
请教,谢谢!
这里是因为date和title都是通过js二次加载进这个html页面的。
你获取到的html页面并不是最终经过js二次加载的,也就是说它跟显示在你浏览器上的并不一样。
如果想获取这类通过js 加载的网页,我推荐使用selenium ,它是模拟浏览器工作,会返回最终的静态页面,也就是你浏览器看到的那样。
此外还可以通过阅读这个网站js代码进行直接解包获取,那个会难一点
|
最佳答案
查看完整内容
这里是因为date和title都是通过js二次加载进这个html页面的。
你获取到的html页面并不是最终经过js二次加载的,也就是说它跟显示在你浏览器上的并不一样。
如果想获取这类通过js 加载的网页,我推荐使用selenium ,它是模拟浏览器工作,会返回最终的静态页面,也就是你浏览器看到的那样。
此外还可以通过阅读这个网站js代码进行直接解包获取,那个会难一点
|