• day_93_11_25爬虫一requests,项目框架


    总结

      nginx反向代理与正向代理。

      正向带里就是,客户端通过中转服务器,访问其它他服务器的数据。

      反向代理就是用户访问中转服务器,看起来就像和这台服务器交互一样。

      nginx动静分离。

      当客户端访问动态资源时,访问的是视图中的资源,而访问静态资源的时候,则不走veiw。

      负载均衡。

      使用多uwsgi实现。

      分布式:

      将一个项目分多个服务器跑。  

    一。爬虫

      爬虫的本质就是模拟数据 的发送,。并接受返回的数据进行存储。

      爬虫需要经过以下几个过程:

      1.发送请求。

      2.获取响应内容。

      3.解析内容。

      4保存数据。

    二。request

      get:  

      get请求方法添加参数的时候需要在params中添加。

      post添加的请求在data中。

      除了参数还需要填写headers。

      提交登录信息成功后可以使用cookies。get_dict方法获取cookies。

      如果get参数中有特殊字符,可以使用

      request.json()可以直接获取目标序列化。

      示例:

    import requests
    
    response = requests.post('https://www.processon.com/login',
                             data={
                                'login_email': '13775697553',
                                'login_password': '87765396094165aq',
                             },
                             headers={
                                'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
                                'referer': 'https://www.processon.com/login',
                                 'upgrade-insecure-requests': '1',
                                'origin': 'https://www.processon.com',
                                'pragma': 'no-cache',
                                'sec-fetch-mode': 'navigate',
                                'sec-fetch-site': 'same-origin',
                                'sec-fetch-user': '?1',
                             }
                             )
    print(response.cookies.get_dict())
    print(response.text)
    with open('pro_danger.html','w',encoding='utf-8') as f:
        f.write(response.text)
    
    # home = requests.get('https://www.processon.com/',
    #                     headers={
    #                         'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
    #                         'referer': 'https://www.processon.com/login',
    #                     },
    #                     cookies=response.cookies
    #                     )
    # print(home.text)
    # print('<title>ProcessOn - 我的文件</title>' in home.text)

      获取图片:

    import requests
    import re
    url = 'https://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=1&start=2&mrd=0.35874713019603344'
    
    response = requests.get(url)
    
    url_list = re.findall('<a href="(.*?)" class="vervideo-lilink actplay">',response.text)
    print(url_list)
    
    for v_url in url_list:
        url = 'https://www.pearvideo.com/' + v_url
        response = requests.get(url)
        response = response.text
        v = re.findall('srcUrl="(.*?)"',response)[0]
        # srcUrl = "https://video.pearvideo.com/mp4/adshort/20191125/cont-1626218-14629877_adpkg-ad_hd.mp4"
        print(v)
        v_res = requests.get(v)
        name = v.rsplit('/',1)[1]
        with open(name,'wb') as f:
            f.write(v_res.content)
  • 相关阅读:
    D3.js:交互式操作
    D3.js:Update、Enter、Exit
    D3.js:动态效果
    D3.js:完整的柱形图
    D3.js:坐标轴
    D3.js
    ES 6 : 数组的扩展
    ES 6 : Math对象的扩展
    拉勾网企业图片列表效果
    拉勾网图片切换效果
  • 原文地址:https://www.cnblogs.com/LZXlzmmddtm/p/11931157.html
Copyright © 2020-2023  润新知