day_93_11_25爬虫一requests,项目框架

总结

  nginx反向代理与正向代理。

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

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

  nginx动静分离。

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

  负载均衡。

  使用多uwsgi实现。

  分布式:

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

一。爬虫

扫描二维码关注公众号,回复: 7975817 查看本文章

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

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

  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)

猜你喜欢

转载自www.cnblogs.com/LZXlzmmddtm/p/11931157.html