总结
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)