爬虫

内容回顾:
第一部分:爬虫相关
1. 谈谈你对http协议的理解?
规范:
1. Http请求收发数据的格式
GET /index/ http1.1/r/nhost:xxx.com/r/n/r/n
POST /index/ http1.1/r/nhost:xxx.com/r/n/r/nuser=xxx

            2. 短连接(无状态)
                一次请求一次响应之后,就断开连接
                
            3. 基于TCP协议之上
                sk = socket()
                sk.send('GET /index/ http1.1/r/nhost:xxx.com/r/n/r/n')
常见请求头有哪些?
   host 	
   content-type 
   user-agent
   cookies
   referer,上一次请求地址
  1. 常见的请求方法有哪些?
              GET
              POST 
              DELETE
              PUT 
              PATCH
              OPTIONS
    2. requests 
        用于伪造浏览器发送请求
        参数:
            - url 
            - headers
            - data 
            - cookies 
        响应:
            - content 
            - text 
            - encoding='gbk'
            - headers 
            - cookies.get_dict()
       3. bs  
           用于解析HTML格式的字符串 
           方法和属性:
               - find 
               - find_all 
               - attrs
               - get 
               - text 
          4. 套路 
           - 汽车之家
           - 抽屉新闻:携带user-agent 
           - 登录抽屉:第一访问保留cookie,登录时需要再次携带;
           - 自动登录github:获取csrf_token,到底携带那一个cookie

           
           补充:自动登录github
           
第二部分:路飞相关
    1. 公司的组织架构?
        开发:
            - 村长
            - 前端姑娘
            - 涛
            - 云(产品+开发)
        UI:1人
        测试:1人
        运维:1人
        运营:2人
        销售:3人
        班主任:1人
        全职助教:2人
        人事/财务:老男孩共享
        
    2. 项目架构
        - 管理后台(1)
            - 权限
            - xadmin
        - 导师后台(1)
            - 权限
            - xadmin 
        - 主站(1+1+0.5+1)
            - restful api 
            - vue.js 
        
        现在开发:题库系统

    3. 涉及技术点:
        - django 
        - django rest framework 
        - vue.js 
        - 跨域cors
        - redis 
        - 支付宝支付
        - 视频播放
            - CC视频
            - 保利 
        - 微信消息推送
            - 已认证的服务号
            - 发送模板消息 
        - content-type 

今日内容:
- 拉勾网
- 抖音
- requests
- bs4
- 初识scrapy框架

内容详细:
1.拉勾网
- Token和Code存在页面上,自定义请求头上
- 重定向:
- 响应头的Location中获取要重定向的地址
- 自己去处理
- 请求发送时需要携带上次请求的code和token

    原则:
        - 完全模拟浏览器的行为

2. 爬抖音视频 

3. requests模块 
    参数:    
        url 
        params 
        headers 
        cookies 
        data 
            示例:
                request.post(
                    data={
                        user:'alex',
                        pwd:'sb'
                    }
                )
                
                user=alex&pwd=sb 
            
            chrome: formdata
        json 
            示例:
                request.post(
                    json={
                        user:'alex',
                        pwd:'sb'
                    }
                )
                
                '{"user":"alex","pwd":"sb"}'

            chrome: request payload 
        allow_redirecs
        stream

        files 
            requests.post(
                url='xxx',
                files={
                    'f1': open('readme', 'rb')
                }
            )
        
        auth
            from requests.auth import HTTPBasicAuth, HTTPDigestAuth

            ret = requests.get('https://api.github.com/user', auth=HTTPBasicAuth('admin', 'admin'))
            print(ret.text)

        timeout 
            ret = requests.get('http://google.com/', timeout=1)
            
            ret = requests.get('http://google.com/', timeout=(5, 1))
        proxies
            proxies = {
                "http": "61.172.249.96:80",
                "https": "http://61.185.219.126:3128",
            }
            # proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'}
            
            ret = requests.get("https://www.proxy360.cn/Proxy", proxies=proxies)
            print(ret.headers)
            
            
            from requests.auth import HTTPProxyAuth
            auth = HTTPProxyAuth('username', 'mypassword')
            
            r = requests.get("http://www.google.com", proxies=proxyDict, auth=auth)
            
        证书相关:
            cert
            verify
            
    session:自动管理cookie和headers(不建议使用)
        import requests

        session = requests.Session()
        i1 = session.get(url="http://dig.chouti.com/help/service")
        i2 = session.post(
            url="http://dig.chouti.com/login",
            data={
                'phone': "8615131255089",
                'password': "xxooxxoo",
                'oneMonth': ""
            }
        )
        i3 = session.post(
            url="http://dig.chouti.com/link/vote?linksId=8589523"
        )
        print(i3.text)
            
4. bs4 

    参考示例:https://www.cnblogs.com/wupeiqi/articles/6283017.html

预习:
1. 安装scrapy
https://www.cnblogs.com/wupeiqi/articles/6229292.html

    a. 下载twisted 
    
        http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    
    b. 安装wheel 
    
        pip3 install wheel
        
    c. 安装twisted 

       pip3 install Twisted‑18.7.0‑cp36‑cp36m‑win_amd64.whl
        
    d. 安装pywin32
    
        pip3 install pywin32
        
        
    e. 安装scrapy 
    
        pip3 install scrapy 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值