爬虫学习

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    获取标签  属性内容

                        

原文地址:https://www.cnblogs.com/ychj/p/9652684.html