zoukankan      html  css  js  c++  java
  • python之爬虫

    一、爬虫之requests模块


     

    需求:给关键字到各在网站搜索存入数据库

    1.概述: requests模拟浏览器向后端发请求

                 requests模块如何安装:pip3 install requests

                 import requests

                 get请求:

                 response=requests.get('https://www.sogou.com/web?query=小虎')//发get请求,封装到response里了

                 print(response.text)

                 post请求:

                 form_data={   

                            'phone':18912020023

                            'password':'djfkjf'           

                    }

                   response=requests.post(

                              url='http://dig.chouti.com/login'

                              data=form_data

                   )

                  print(response.text)

                   requests.put()  requests.delete() requests.head()  requests.options()

    2.requests的基本参数

         (1)另一种调用方法:

                  requests.request(

                           method='get'

                            url='https://www.sogou.com/web'

                            params={'query':小虎,'q':'b'}//会自己拼接url:https://www.sogou.com/web?query=小虎&q=b

                            data={}//放请求体里的

                             cookie={'.CNBlogsCookie':'....'}

                  )

                  requests.request(

                           method='post'

                            url='https://www.sogou.com/web'

                            params={'query':小虎,'q':'b'}//会自己拼接url:https://www.sogou.com/web?query=小虎&q=b

                            data={'user':'dan'}//放请求体里的,可字典可字符串#"user=dan;pwd=sdfsdf":自己转成字符串,默认带请求头application/x-www-form-urlencoded

                            json=json.dumps({'user':'dan'})//默认带上请求头变成application/json

                              //有二种情况会出现浏览器能访问到数据,用这个请求就加获取不到数据,有二种情况如下:

                            headers={       请求头,是后台拿不到的数据

                                   'User-Agent':' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36 ',//终端是什么,把浏览器的终端信息拿过来放进去

                                   'Referer':'https://www.zhihu.com',//第二次发请求时要有的

                            }

                            cookies={'.CNBlogsCookie':'....'},//流程:用户会话保持,第一次登录成功后会发一个随机字符串

                           其它参数:

                            files,auth,proxies等

                           

                             )

                 def index(request):

                        request.method

                        request.GET.get('query')//后台拿的是params的字典,在url里拿数据

                        request.POST.get('user')//后台拿到的是data里的数据,在请求体里拿数据

                        request.body:拿到的是传输的字符串

                                       先判断请求头里是不是content-type:application/x-www-form-urlencoded,如果是把传输数据赋给body

                                       再把数据转成字典给POST,如果请求头不是这样比如是application/json就不转换直接给body,POST就是空

                  

                 

  • 相关阅读:
    ubuntu配置apache支持sqlite数据库
    linux中的(),(()),[],[[]],{}的作用
    javascript问题积累
    羞愧的开始,成熟的开始,努力的开始
    asp发送邮件代码
    css&html的问题积累
    应用phpcms时遇到的问题及smarty标签的应用
    js正则积累
    产生一个int数组,长度为100,并向其中随机插入1100,并且不能重复。按照数组下标输出结果。
    不同项目之间的基础dll共用问题
  • 原文地址:https://www.cnblogs.com/Dana-xiong/p/14672880.html
Copyright © 2011-2022 走看看