zoukankan      html  css  js  c++  java
  • 爬虫学习

    1、requests   模块

      res = requests.get("url")    请求网页

      res.text      将获取的网页转化成文本格式

      具体函数

      res = requests.get("url")

      res.text  ====>获取文本

      res.content   ====>下载内容

            举例    img_res= rrequests.get(url)     =======>获取要下载的文件的url

                  name  =  "name"+".jpg"    ==========>文件命名成要下载的内容的格式  一般url最后 都有格式 比如  jpg    MP4   等

                  with open   ("name",‘wb’)  as  f:     ======》打开文件,以前面  编写的名字为文件名     一个下载文件要建立一个存放文件

                    f.write(img_res.content)    =======>下载文件进入存放文件,自动转化成我们要下载的文件

      res.encoding  =====>解码方式

      res.aparent_encoding   ======>获取解码方式

      res.status_code    ======>  获取访问的状态码     200表示成功

                            404  表示访问不成功

                            300  是否 稳定网站

      res.cookies.get_dic()   =======>获取字典类型的cookies

      requests.get("url",cookie = {"xx":"xxxx"})

          重点  正对POST类型的网站,可以在网页检查中寻找  发送的data  数据类型     post数据的键名   在network   from data  这个栏目里面

              获取POST  页面 返回的LOCATION(解决 有searchid   的网站)

              如果是返回 302,response header 里面就有 location 这个 header
                  r = requests.post('http://xyz.com/302',data = data) 
                  r.headers['Location']

                  还有一个简单做法就是:
                  r = requests.post(url, allow_redirects=True)
                  print(r.url)

      requests.post(url,data)

        url  =  找到的post请求的网址

        data   ==  在network 里面找到的列表名称和要输入的数据  组成的一个字典结构    data里面 再带上刚才post获取的cookie   就可以实现登陆  或者取得location  里面的网址  就是要登陆的网址  res.hearders["location"]

      

    2、beautifulsoup

      soup = beautifulsoup(res.text,features="lxml")   =======>建立soup对象    lxml的效率是最高的

      v1 = soup.find("div")    =====>寻找第一个div  标签下的内容

      v1 =soup.find(id = "il")  ======>寻找id是il的标签里的内容  

      v1 =soup.find("div",id="il")  ========>寻找第一个id等于il的  div标签 里的内容   两个条件同时满足     id可以改成其他属性

      v2 =soup.find_all("div")    =====>寻找所有div  标签下的内容     列表类型

      v2 =soup.find_all(id = "il")  ======>寻找所有   id是il的标签里的内容   列表类型

      v2 =soup.find_all("div",id="il")  ========>寻找所有的id等于il的  div标签 里的内容   两个条件同时满足     列表类型

      obj =v1  获取标签内容

      obj = v2[0]    获取标签内容

      obj.text    获取标签内容文本格式

      obj.attrs    获取标签  属性内容

                            

  • 相关阅读:
    C++ vector介绍
    C++string的使用
    关于VS2010error RC2170 : bitmap file res mp1.bmp is not in 3.00 format
    团队项目第一次讨论
    团队项目——铁大树洞个人分析
    第五周学习进度总结
    转发
    android移动端疫情展示
    《构建之法》阅读笔记03
    第四周学习进度总结
  • 原文地址:https://www.cnblogs.com/ychj/p/9652684.html
Copyright © 2011-2022 走看看