为什么qq空间源代码与爬取到的不一样

Python012

为什么qq空间源代码与爬取到的不一样,第1张

因为页面有些DOM是在js执行之后渲染出来的,你要在右键-页面源码这里看,才是浏览器拿到的页面源码。如果你要爬取的数据是js渲染得到的,那么有两种办法。一种是直接调用浏览器帮你执行js,拿到你希望拿到的数据。这个可以用selenium这个工具实现。另一种是你自己模拟js的执行过程,用python代码实现这段算法,拿到数据

用urllib2

例如:

url = 'http://i.qq.com/'

data = {'name': 'username','password': '123456'}

post_data = urllib.urlencode(data)

req = urllib2.Request(url, post_data)

response = urllib2.urlopen(req)

page_content = response.read()

这个data这里是随便写的, 你自己用抓包工具看看是qq空间是什么样子的。

你这种情况,是因为浏览的是动态页面,源码是动态生成的,需要找到那个隐藏的url才能抓取。采用这种方式的网站很多,是为了快速显示相应的内容。解决方法要么找到可以显示内容的隐藏url,要么采用python的插件,将全部的内容显示出来后,读取源码,再抓取。