爬虫基础 requests

爬虫基础 requests

1. 爬虫的用途

  1. 爬去数据用做网站展示
  2. 爬去数据用来为大数据或者人工智能服务

2. 什么是爬虫?

模拟浏览器发送请求,获取响应的程序

3. 爬虫的分类

3.1 通用爬虫

搜索引擎的爬虫,爬去整个互联网的数据

3.2 聚焦爬虫

针对特定网站专门写的抓取数据的程序

聚焦爬虫的流程

  1. 准备url列表
  2. 拿到一个url发起请求,获取响应
  3. 响应提取
    • 提取的是数据,数据保存
    • 提取的是url,放入url列表

rootbots协议:网站规定搜索引擎可以爬去的内容范围,只是道德约束

4. 爬虫程序的响应

爬虫程序的响应 以 url对应的响应为准,不能以elements为准

5. 重要的请求头

  • Cookie: 保存用户登陆的凭证,如果要访问登陆后的页面去获取数据,必须携带Cookie
  • User-Agent: 表示请求者的身份,反爬的必要手段,每次请求都必须携带
  • Referer:页面来源处

6. get和post请求的区别

  1. 最直观的就是语义上的区别,get用于获取数据,post用于提交数据。
  2. get参数有长度限制(受限于url长度,具体的数值取决于浏览器和服务器的限制),而post无限制
  3. GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接,而POST请求会把请求的数据放置在HTTP 请求体中。
  4. 更多资料,请查看post请求和get请求的区别

7. python3 字符串

  • str类型 str.endcode() -> bytes
  • bytes类型 bytes.deoce() -> str
>>> str1 = "黑马程序员"
>>> type(str1)
<class 'str'>
>>> str1.encode("utf-8")
b'\xe9\xbb\x91\xe9\xa9\xac\xe7\xa8\x8b\xe5\xba\x8f\xe5\x91\x98'
>>> a = str1.encode("utf-8")
>>> type(a)
<class 'bytes'>
>>> a.decode("utf-8")
'黑马程序员'

8. requests库的基本使用

pip install requests

import requests

url = "https://www.baidu.com"
resp = requests.get(url)
# 页面响应,解码后数据,编码是根据响应头部自动推测的,有可能不对,可以指定
resp.encoding = "utf-8"
print(resp.text)

# 页面响应数据,原始的bytes类型,需要自行解码
print(resp.content)
print(resp.content.decode())

案例1. 拨号

import requests
import time


def dial():
    url = "http://172.16.64.1/goform/formWebAuthUserSubmit?userName=xxx&userPasswd=xxxx&userCommand=userAuth"
    resp = requests.get(url)
    print("链接成功")


while True:
    url = "https://www.baidu.com"
    try:
        requests.get(url, timeout=3)
    except Exception as ret:
        print(ret)
        dial()
    finally:
        time.sleep(30)

9. 使用requests下载图片并且保存

#导入requests模块
import requests
#url链接
url = "http://docs.python-requests.org/zh_CN/latest/_static/requests-sidebar.png"
#获取数据
resp = requests.get(url)
#保存数据
with open('images/1.png', 'wb') as f:
    f.write(resp.content)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值