美文网首页
python 爬取 http://www.ks5u.com/zh

python 爬取 http://www.ks5u.com/zh

作者: 君惜丶 | 来源:发表于2017-01-06 00:13 被阅读0次
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    __author__ = 'junxi'
    
    import urllib.request
    import http.cookiejar
    import re
    import time
    import urllib.parse
    
    
    # 写爬虫不是先写代码,而是先分析网站
    '''
    爬虫
    VIP 一个问题
    收费内容
    权限, 账号, 登录
    
    第一步:
    登录请求 url: http://www.ks5u.com/user/inc/UserLogin_Index.asp
    登录请求数据: username=666666&password=666666&c_add=1
    请求方式: POST
    登录成功之后 cookies身份认证
    NO cookie身份证
    ajax 异步加载
    第二步: 获取内容列表
    []: list 列表 元组
    第三步: 获取下载链接
    http://www.ks5u.com/USER/INC/Downsch.asp?id=1890066
    '''
    
    
    # 创建一个 cookie对象来保存 cookie
    cookie = http.cookiejar.CookieJar()
    # 创建一个 cookie对象
    handler = urllib.request.HTTPCookieProcessor(cookie)
    # 构建一个 handler对象
    opener = urllib.request.build_opener(handler, urllib.request.HTTPHandler)
    urllib.request.install_opener(opener)
    # opener可以直接打开网站
    
    username = '666666'
    password = '666666'
    params = {
              'username': '666666',
              'password': '666666',
              'c_add': '1',
    }
    
    headers = {
    'Accept': '*/*',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.8,en;q=0.6',
    'Connection': 'keep-alive',
    'Content-Length': '49',
    'Content-type': 'application/x-www-form-urlencoded',
    'Host': 'www.ks5u.com',
    'Origin:http': '//www.ks5u.com',
    'Referer': 'http://www.ks5u.com/',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36',
    }
    
    # url = 'http://www.ks5u.com/'
    url = "http://www.ks5u.com/user/inc/UserLogin_Index.asp"
    # url1 = 'http://www.ks5u.com/user/inc/Login_Index.asp'
    data = urllib.parse.urlencode(params).encode()
    
    
    
    def login():
        req = urllib.request.Request(url=url, data=data)
        # html = urllib.request.urlopen(url='http://www.ks5u.com/user/inc/UserLogin_Index.asp', data='username=666666&password=666666&c_add=1').read()
        html = opener.open(req).read().decode('gbk')
        return html
        # print(html)
    
    
    
    if '666666' in login():
        print('登录成功')
    else:
        print('登录失败')
    
    
    def get_list():
        data_dic = {
            'xueke': '1',
            'shenfen': '32',
        }
        data = urllib.parse.urlencode(data_dic).encode()
        req = urllib.request.Request('http://www.ks5u.com/zhuantimoni/ashx/jinbang.ashx',data=data)
        # req.data('xueke=1&shenfen=32')
        html = opener.open(req).read()
        html = str(html, 'utf-8')   # 解决中文乱码问题
        reg = r'<a href="(.+?)" target="_blank" title="(.+?)">'
        return re.findall(reg, html)        # findall 是进行匹配
        # print(html)
    
    
    def get_file(id, name):
        req = urllib.request.Request('http://www.ks5u.com/USER/INC/DownCom.asp?id=%s' % id)
        req.add_header('Referer', 'http://www.ks5u.com/zhuantimoni/yimo.html')
        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36')
        data = opener.open(req).read()
        print(data.decode('gbk'))
        open(name + '.doc', 'wb').write(data)
    
    
    # get_file('2082674', '辽宁省抚顺市2016届高三第一次模拟考试(3月)语文试题 Word版含答案')
    
    for i in get_list():
        # i = ('1.html', '名字')
        # i[1] = '1.html'
        # i[2] = '名字'
        url = i[0]
        name = i[1]
        id = url.split('/')[-1].split('.')[0]
        # id = url.split('/')[-1][:-6]
        print(id, name)
    
    
    # req = urllib.request.Request('http://imgsrc.baidu.com/baike/pic/item/91ef76c6a7efce1b1e78f841aa51f3deb58f65ed.jpg')
    # data = opener.open(req).read()
    # print(data)
    # open('aaa' + '.jpg', 'wb').write(data)
    

    相关文章

      网友评论

          本文标题:python 爬取 http://www.ks5u.com/zh

          本文链接:https://www.haomeiwen.com/subject/mrrtbttx.html