为什么用Beautifulsoup无法提取微博粉丝列表的page数

用python写小脚本想爬取新浪科技的粉丝http://weibo.com/1642634100/fans,先要获得粉丝页数,用chrome看到的html结构如下:
图片描述
图片描述

写的脚本如下,获得的list为空

def getFansPage(urlfans):
    req = urllib2.Request(urlfans, headers=headers)
    time.sleep(sletime)
    html_sample = exceptRequest(req).read()
    # 分析得到pagenum所在属性
    soup = BeautifulSoup(html_sample,'html.parser')
    pagenum = soup.find_all("a",class_="page prev S_txt1 S_line1 page_dis")
    return pagenum

后来发现这样连都是空的:

pagenum = soup.find_all("a",class_="WB_frame")

这是为什么呢?

阅读 3.9k
3 个回答

直接看网页的源码

class="page prev S_txt1 S_line1 page_dis" 在页面刚加载的时候是 在script标签里的图片描述

你应该用正则去匹配

新手上路,请多包涵

可能是因为取的层级有问题,或者有相同的标签吧,可以到pycatch上看看

因为这是JS动态生成的,在html源码中是看不到的。你可以用selenium+phantomjs来执行js代码获取执行后的html源码,这样可以获取到

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题