python-spider 第七关

书虫媛 2020-08-18

import json
from typing import Dict, List

import browsercookie
import requests
from requests.cookies import RequestsCookieJar

## init for classes

session = requests.session()
chrome_cookie = browsercookie.chrome()
s = []

url = "http://www.python-spider.com/api/challenge7"


def get_cookie_from_chrome(domain: str) -> List[Dict]:
    """
    :param domain: the cookies your want to get from.
    :return: a dict the contains cookies from the domain.
    """
    l = []
    for i in chrome_cookie:
        if domain in i.domain:
            l.append({‘name‘: i.name, "value": i.value})
    return l


def set_cookie(domain):
    """
    :param domain: the domain going to set
    :return: the instance of RequestsCookieJar contain the cookies of the domain you set
    """
    cookie_jar = RequestsCookieJar()
    cookies_list = get_cookie_from_chrome(domain=domain)                                                      
    for cookie in cookies_list:
        cookie_jar.set(cookie[‘name‘], cookie[‘value‘], domain=domain)

    return cookie_jar


if __name__ == ‘__main__‘:
    header = {
        ‘User-Agent‘: ‘Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36‘,
    }
    cookie_jar = set_cookie(‘www.python-spider.com‘)
    for i in range(1, 101):
        data = {"page": str(i)}
        before_response = session.post(‘http://www.python-spider.com/cityjson‘,headers=header,cookies=cookie_jar)
        response = session.post(url, headers=header, cookies=cookie_jar, data={"page": str(i)})
        print(response.text)
        data1 = json.loads(response.text)[‘data‘]

        s.extend([i[‘value‘].strip(‘\r‘) for i in data1])
    print(s)
    print(sum(int(i) for i in s))

相关推荐