Python 爬某些网站一些数据爬不下来(新手)

Hyphenoc 发布于 2013/11/03 12:38
阅读 1K+
收藏 0

使用Python想要拽取站长工具里某个域名的日均访问量数据,但是urllib2返回的结果为空。

网页源代码:

程序返回的结果:

 使用Java也同样获取不到日均访问量数值。

代码:


import urllib2
from bs4 import BeautifulSoup

url = 'http://alexa.chinaz.com/?domain=www.oschina.net'

httpHandler = urllib2.HTTPHandler()
opener = urllib2.build_opener(httpHandler)
urllib2.install_opener(opener)
headers = {  
    "User-Agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13",  
    #"User-Agent" = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13",  
    "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",  
    "Accept-Language":"zh-cn,zh;q=0.5",  
    #"Accept-Encoding":"gzip,deflate",  
    "Accept-Charset":"GB2312,utf-8;q=0.7,*;q=0.7",  
    "Keep-Alive":"115",  
    "Connection":"keep-alive"  
}  

req = urllib2.Request(url = url, headers = headers)
request = urllib2.urlopen(req)
source = request.read()
soup = BeautifulSoup(source)
[script.extract() for script in soup.findAll('script')]#去除脚本样式
[style.extract() for style in soup.findAll('style')]
open('text.txt','w+').write(str(source))


加载中
0
leo108
leo108
很明显那个数值是js生成的
Hyphenoc
Hyphenoc
嗯,是的。因为不了解js所以开始的时候不知道。谢谢!
0
一九零零
一九零零
试试用http调试抓包工具 fiddler
0
JacCoffee
JacCoffee

通过JS获取的


0
kiwivip
kiwivip
先抓抓包嘛~
0
Hyphenoc
Hyphenoc
嗯,我先试试看。
0
s
sdasfd34
使用selenium可以获取到
Hyphenoc
Hyphenoc
谢谢。搜了一下selenium,应该可以。
0
jokco
jokco
ajax?
Hyphenoc
Hyphenoc
对js不了解,现在在看selenium.
0
jokco
jokco

源码中<script src="http://alexa.chinaz.com/Get_Data.asp?a=1.28117237953304&b=.936910084451068&c=.953303527074019&d=1.36860407352211&e=1.28117237953304&f=≈ 15409.8385494287&g=≈ 161495.084451068"></script>返回的不就是么

Hyphenoc
Hyphenoc
这个得先运行js后才能得到结果吧?
0
铂金胖子
铂金胖子
python 可以用这个 : spynner
Hyphenoc
Hyphenoc
这个简单,可以搞定,谢谢!
0
颓废的幻想者
颓废的幻想者
浏览器分析 后台请求 获取返回数据url 直接爬 url就可以了 绕过前端就好了
Hyphenoc
Hyphenoc
嗯,正在考虑这个方法。
返回顶部
顶部