爬虫之Request库的使用

Requests库

一. 优点
  1. 简单易用
  2. url自动转义
  3. py2和py3一致
二. 使用方法
  1. User-Agent

    包含电脑信息和浏览器信息,为了反爬,采用多个User-Agent的方式。网上可查询到

    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'
    }
    response = requests.get(url=url, headers=headers)
    
  2. IP

    登录网页ip,为了反爬,采用多个ip的方式。网上有免费和收费两种

    free_proxy = {'http': '45.136.245.22:8080'}
    response = requests.get(url=url,proxies=free_proxy)
    
  3. Cookie
    1)手动
    cookies = '_ga=GA1.2.1820447474.1535025127; MEIQIA_EXTRA_TRACK_ID=199Tty9OyANCXtHaSobJs67FU7J;
    cook_dict = {cookie.split('=')[0]:cookie.split('=')[1] for cookie in cookies.split('; ')}
    response = requests.get(url=url,cookies=cook_dict)
    
    2)自动登录信息获取并登录
    url = 'https://www.yaozh.com/member/'
    # 1.代码登录
    session = requests.session()	# session 类 可以自动保存cookies
    # 登录界面checkN->preservelog->login->find: 1)login_url  2)post->form_data;get->query
    login_url = 'https://www.yaozh.com/login'
    login_form_data = {
        'username':'xiaomaoera12',
        'pwd': 'lina081012',
        'formhash': '54AC1EE419',
        'backurl': 'https%3A%2F%2Fwww.yaozh.com%2F',
    }
    login_response = session.post(login_url,data=login_form_data,headers=headers)
    # 2.登录成功之后 带着 有效的cookies 访问 请求目标数据
    data = session.get(member_url,headers=headers).content.decode()
    
    1. SSL取消认证

      因为https 是有第三方CA 证书认证的,但是有的网站虽然是https 但是 它不是CA证书, 而是他自己颁布的证书(例如12306)。解决方法 是: 告诉web 忽略证书访问

      response = requests.get(url=url, headers=headers, proxies=free_proxy ,verify=False)
      
    2. 返回数据提取Text&Content
      1) text(更常用)

      返回的是Unicode型的数据。

      content = r.text  #先读取
      html = etree.HTML(content)	#再解码	
      
      2) content(可能有不能解析的)

      返回的是bytes数据。

      两种形式utf-8和gbk:

      ​ *** utf-8->decode(“utf-8”)(linux&mac默认)->file.write(data,encoding=“utf-8”)

      ​ *** gbk->decode(“gbk”)(win默认)->file.write(data,encoding=“gbk”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值