python 用 beautifulsoup 获得 <div id="z"></div>的东西

这几天刚自学python爬虫,想拿学校教务系统下手,可一下就遇到这个问题就难倒我了,直接打开这个网页看源代码只有这一句<divid="z"></div>,而我将网页另存为... 这几天刚自学python爬虫,想拿学校教务系统下手,可一下就遇到这个问题就难倒我了,直接打开这个网页看源代码只有这一句 <div id="z"></div>,而我将网页另存为时<div id="z"><tablle>......</table></div> 中间是有内容的,太多了就用省略号代替,我要爬的就是那一部分!我用代码爬取整个网页,也都没有中间那部分,就和查看源代码一模一样,我要怎么办才能把中间的id = ‘z’弄出来呢? 展开
 我来答
n风子n
推荐于2016-11-03 · TA获得超过217个赞
知道小有建树答主
回答量:84
采纳率:0%
帮助的人:81.4万
展开全部
一、你取到的跟浏览器不一样,这一般是因为内容是js生成或者js以ajax取到然后更新进去的。
想要自己写代码解决恐怕你要自己分析一下网页所带的js的功能了,或者想偷懒的话用webbrowser之类的模块通过浏览器来取得内容。
二、要取div的id属性用BeautifulSoup即可达到目的,要是装了PyQuery的就更简单,下面给个BeautifulSoup的例子:
from bs4 import BeautifulSoup
sp = BeautifulSoup('<div id="z"></div>')
assert(sp.div['id'],'z')
print sp.div['id']
追问
Beautifulsoup那个部分我还会用一点,现在关键就是取到的网页
里面本来就没有内容,我要怎么取出那部分呢?用的是python写的,ch = pycurl.Curl(),再用setopt之类处理。js生成或者js以ajax取到然后更新进去的。我要怎么弄呢? 感激不尽!
追答
pycurl是不会执行js的,要手写恐怕你要耐必的读读的你取的这个页面的js文件了。
或者可以偷偷小懒用firebug,IE(9+)调试工具看看有哪些ajax操作,然后对着js文件猜一猜,运气好应该可以省不少时间。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式