qq_34324426
qq_34324426
采纳率0%
2016-04-05 07:34 浏览 10.6k

为何用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头部,但是结果还是不行,求各路大神指点,直接把解决办法附在评论区里,谢谢各路大神了。。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答 默认 最新

  • qq_34324426 qq_34324426 2016-04-05 07:38

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

    点赞 评论 复制链接分享
  • qq_28766327 刘宇LY 2016-04-05 08:19

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

    点赞 评论 复制链接分享
  • qq_23214785 qq_23214785 2016-05-23 07:32

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

    点赞 评论 复制链接分享
  • weixin_41786580 一本不正经的程序猿 2019-11-05 08:46

    可以使用selenium尝试一下,我也遇到过这样的问题,用selenium就解决了

    点赞 评论 复制链接分享
  • qq_45587822 猫兮ぃCatci 2020-02-23 15:15

    回答同样如上

    你可以看看是否为动态加载页面,如果是,你可以使用selenium库的webdriver来动态爬取
    首先在你的浏览器上安装对应的插件(例如我的浏览器是chrome)
    driver = webdriver.Chrome
    driver.get('website')
    如果要想保存登录信息,可以去我的博文里看看

    点赞 评论 复制链接分享

相关推荐