网络爬虫 requests 的使用

本文介绍如何使用Python发起HTTP GET和POST请求,解析响应内容,利用代理服务器,处理HTTPS请求,管理Cookies,以及使用session保持登录状态的方法。文章还涵盖了如何使用urllib3库进行网络请求。
摘要由CSDN通过智能技术生成
  • 1.get 请求
    • import requests
    • kw = {'wd':'美女'}
    • headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
    • response = requests.get("http://www.baidu.com/s?",params=kw,headers=headers)  添加参数不需urlencode 编码
    • print(response.request)
    • #打印服务器返回的内容
    • print(response.content.decode())
  • 2.post请求
    • import requests
    • headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
    • data = {"name":"zhangsan","age":"18"}
    • response = requests.post("http://httpbin.org/post", data = data,headers=headers) 添加参数不需urlencode 编码
    • print(response.request)
    • #打印服务器返回的内容
    • print(response.content.decode())
  • 3.response方法和属性
    • 查看响应内容,response.text 返回的是Unicode格式的数据
    • 查看响应内容,response.content返回的原始二进制字节流,可以用来保存图片等二进制文件。 b'...'
    • 查看完整url地址 response.url
    • 查看响应头部字符编码 response.encoding
    • 查看响应码 response.status_code
    • 如果是json文件可以直接显示  print(response.json())
  • 4.代理
    • 免费代理
      • import  requests
      • # 根据协议类型,选择不同的代理
      • proxies = {
      • "http": "123.139.56.238:9999",
      • }
      • response = requests.get("http://www.baidu.com/", proxies=proxies)
      • print(response.text)
    • 私密代理
      • proxies = {
      • "http": "http://用户名:密码@ip:端口/",
      • }
    • web客户端验证
      • response = requests.get('http://67.228.126:16818', auth =(用户名,密码))
  • 5.cookie
    • import requests
    • response = requests.get("http://www.baidu.com/")
    • # 返回CookieJar对象:
    • cookiejar = response.cookies
    • # 将CookieJar转为字典:
    • cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
    • print(cookiejar)
    • print(cookiedict)
  • 6.处理HTTPS请求 SSL证书验证
    • 如果SSL证书验证不通过,或者不信任服务器的安全证书,则会报出SSLError,据说 12306 证书是自己做的:
    • import requests
    • response = requests.get("https://www.12306.cn/mormhweb/", verify = False)
    • print(response.content.decode("utf-8"))
  • 7.session的使用 登录人人网
    • import requests
    • # 1. 创建session对象,可以保存Cookie值
    • session = requests.session()
    • # 2. 处理 headers
    • headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
    • # 3. 需要登录的用户名和密码
    • data = {"email":"用户名", "password":"密码"}
    • # 4. 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存在ssion里
    • session.post("http://www.renren.com/PLogin.do", data = data)
    • # 5. session包含用户登录后的Cookie值,可以直接访问那些登录后才可以访问的页面
    • response = session.get("http://www.renren.com/880792860/profile")
    • # 6. 打印响应内容
    • print(response.text)
  • 8.urllib3 的使用
    • from urllib3 import PoolManager,disable_warnings
    • http = PoolManager()
    • request = http.request("GET",url,headers=headers)  GET 请求方式 还有POST, url 请求地址,headers自定义的请求头
    • result = request.data.decode()  data 响应内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值