2 qq 34324426 qq_34324426 于 2016.04.05 15:34 提问

为何用Python做爬虫时抓取下来的页面跟源代码不一样?

代码如下:

-*- coding:utf-8 -*-

import urllib
import urllib2
import re
baseURL = 'http://zhidao.baidu.com/question/491268910.html'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36'}
#request = urllib2.Request(baseURL)
request = urllib2.Request(url=baseURL,headers=headers)
response = urllib2.urlopen(request)
print response.read().decode("GBK")

我用上面的代码爬取一个百度知道的答案,把抓取到的信息打印出来为什么有的地方跟网页审查元素所显示的代码不一样?
网页原来的段落为:图片说明
这段话对应的源代码为:图片说明
抓取网页信息后的对应的代码为:图片说明
我尝试了一个,在提取页面时,加载一个headers头部,但是结果还是不行,求各路大神指点,直接把解决办法附在评论区里,谢谢各路大神了。。。

3个回答

qq_34324426
qq_34324426   2016.04.05 15:38

我想要把网页采纳的答案给抓取出来,但是抓取到的信息里,为什么好多文字都被等代替了,怎么能让他直接显示原来的源代码啊

qq_34324426
qq_34324426 也就是百度知道页面的文字为什么有的用<img class="word-replace" src="">代替了,怎么让它直接显示文字?
一年多之前 回复
qq_28766327
qq_28766327   2016.04.05 16:19

他很可能用了JavaScript动态加载页面。你获取的页面只是原来的html而已。

qq_34324426
qq_34324426 回复别人造好的轮子就要用: 有Windows下的解决方法吗
一年多之前 回复
qq_28766327
qq_28766327 回复qq_34324426: 我昨天刚好看到一篇文章讲这个,你关注我。我私信给你。哈哈哈哈
一年多之前 回复
qq_34324426
qq_34324426 那该怎么处理呢?
一年多之前 回复
qq_23214785
qq_23214785   2016.05.23 15:32

要爬取js等动态生成的数据,可以使用神箭手云爬虫开发框架(shenjianshou.cn),只需要设置一下enableJS:true就可以自动爬取了,很方便!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!