以这个为例:http://www.imooc.com/video/10903
在f12时候可以看到这一串信息
<video x-webkit-airplay="allow" webkit-playsinline="" src="http://v2.mukewang.com/82893051-9d99-4746-a835-50056e57826b/H.mp4?auth_key=1458364819-0-0-262a7ce60b83926e262dd5dc9f81e94f"></video>
但在我处理页面的时候都没发现有这链接
这页面需要登入之后才能看,我已经处理了登入程序,可以正常登入,但在用session.get这页面时候,找不到上面的链接信息。
以下是我的代码:
from bs4 import BeautifulSoup
import requests
import configparser
import json
imooc_url = r'http://www.imooc.com'
login_session = requests.session()
headers = {
"Accept":"application/json, text/javascript, */*; q=0.01",
"Accept-Encoding":"gzip, deflate",
"Accept-Language":"zh-CN,zh;q=0.8",
"Connection":"keep-alive",
"Host":"www.imooc.com",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36",
"X-Requested-With":"XMLHttpRequest"
}
class imoocLogin(object):
def __init__(self,configfile):
self.loginurl = r'http://www.imooc.com/passport/user/login'
config = configparser.ConfigParser()
config.read(configfile)
configname = 'imooc'
self.username = config.get(configname,'username')
self.password = config.get(configname,'password')
def startLogin(self):
login_text = requests.get(imooc_url).text
login_soup = BeautifulSoup(login_text,'lxml')
verify = login_soup.find_all('img',class_="verify-img")
print "verify: %s" %verify
if verify:
for verify_data in verify:
verify_data = verify_data.get('src')
verify_url = imooc_url+verify_data
print verify_url
verify_data = raw_input('input verify:')
login_data = {
"username":self.username,
"password":self.password,
"remember":'1',
"verify":verify_data,
"referer":"http://www.imooc.com"
}
else:
login_data = {
"username":self.username,
"password":self.password,
"remember":"1",
"referer":"http://www.imooc.com"
}
print 'ddddddddddddd'
s_login = login_session.post(self.loginurl,data=login_data,headers=headers)
print 'wwwwwwwwwwwwww'
print(s_login)
print s_login.json()
print type(s_login.json())
for k,v in s_login.json().items():
print k,v
# print json.dump(s_login.json(),indent=4,sort_keys=True)
if __name__=='__main__':
abc_url = r'http://www.imooc.com/video/10903'
user_url = r'http://www.imooc.com/u/1322083/courses'
loginPro = imoocLogin('config.ini')
loginPro.startLogin()
video_url = login_session.get(abc_url,headers=headers).text
video_soup = BeautifulSoup(video_url,'lxml')
print video_soup
html5页面上的东西是不是还需要其他的处理的?搞不懂为咋获取不到的。
这个是通过分析请求得到的,你看看这个是不是你想要的:
发送的请求:
挺简单的,只有一两个参数,应该可以解决你的问题了。(赶紧逃....