python 用 beautifulsoup 获得 <div id="z"></div>的东西
这几天刚自学python爬虫,想拿学校教务系统下手,可一下就遇到这个问题就难倒我了,直接打开这个网页看源代码只有这一句<divid="z"></div>,而我将网页另存为...
这几天刚自学python爬虫,想拿学校教务系统下手,可一下就遇到这个问题就难倒我了,直接打开这个网页看源代码只有这一句 <div id="z"></div>,而我将网页另存为时<div id="z"><tablle>......</table></div> 中间是有内容的,太多了就用省略号代替,我要爬的就是那一部分!我用代码爬取整个网页,也都没有中间那部分,就和查看源代码一模一样,我要怎么办才能把中间的id = ‘z’弄出来呢?
展开
1个回答
展开全部
一、你取到的跟浏览器不一样,这一般是因为内容是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']
想要自己写代码解决恐怕你要自己分析一下网页所带的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文件猜一猜,运气好应该可以省不少时间。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询