鱼C论坛

 找回密码
 立即注册
查看: 1215|回复: 1

[已解决]关于pyquery获取文本失败的问题

[复制链接]
发表于 2018-6-2 20:52:17 | 显示全部楼层 |阅读模式
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也是获取不到,是空的;

请教,谢谢!
无标题.png
最佳答案
2018-6-2 20:52:18
这里是因为date和title都是通过js二次加载进这个html页面的。
你获取到的html页面并不是最终经过js二次加载的,也就是说它跟显示在你浏览器上的并不一样。
如果想获取这类通过js 加载的网页,我推荐使用selenium ,它是模拟浏览器工作,会返回最终的静态页面,也就是你浏览器看到的那样。
此外还可以通过阅读这个网站js代码进行直接解包获取,那个会难一点

最佳答案

查看完整内容

这里是因为date和title都是通过js二次加载进这个html页面的。 你获取到的html页面并不是最终经过js二次加载的,也就是说它跟显示在你浏览器上的并不一样。 如果想获取这类通过js 加载的网页,我推荐使用selenium ,它是模拟浏览器工作,会返回最终的静态页面,也就是你浏览器看到的那样。 此外还可以通过阅读这个网站js代码进行直接解包获取,那个会难一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-2 20:52:18 | 显示全部楼层    本楼为最佳答案   
这里是因为date和title都是通过js二次加载进这个html页面的。
你获取到的html页面并不是最终经过js二次加载的,也就是说它跟显示在你浏览器上的并不一样。
如果想获取这类通过js 加载的网页,我推荐使用selenium ,它是模拟浏览器工作,会返回最终的静态页面,也就是你浏览器看到的那样。
此外还可以通过阅读这个网站js代码进行直接解包获取,那个会难一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 04:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表