书虫媛 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))