python爬虫-Anaconda环境+requests模块

python爬虫-Anaconda环境+requests模块

Anaconda简介

  • Anaconda: 集成环境(应用于: 数据分析&机器学习)

  • 终端启动命令: jupyter notebook

  • jupyter的基本使用

    • cell是两种模式组成
      • code: 编码
      • md: 编写文本
    • 快捷键
      • 新建一个cell: a(新建到前面), b(新建到后面)
      • 删除: x
      • 切换cell的模式: m, y
      • 执行cell: shift + enter
      • 打开帮助文档: shift + tab
      • 编辑和退出编辑: enter esc

爬虫简介

  • 概念: 通过编写程序模拟浏览器上网,然后让它去互联网上爬取数据的过程。
  • 爬虫分类
    • 通用爬虫
    • 聚焦爬虫
    • 增量式
    • 分布式
    • 功能
  • 反爬机制
    1. robots协议: 仅仅声明了哪些门户端的数据不可被爬
    2. User-Agent: 请求载体的身份标识(UA检测)
    3. 动态加载数据: 监测鼠标的滑动请求相关数据
    4. 图片懒加载: 给img标签应用一个伪属性
    5. cookie机制
    6. 后续更新…
  • 反反爬策略
    1. 防君子不防小人
    2. 请求头的伪装
    3. 参数动态化params/data/json
    4. 找到伪属性
    5. 使用requests中的Session对象
    6. 后续更新…

requests模块

# 导入
import requests

# 参数介绍
url = '网站url'
params = {'a': "1"}  # 参数,用于get方法
headers = {'User-Agent': '...'}  # 请求头
verify = True  # ssl认证 True(默认使用)/False(取消)
data = {'a': "1"}  # 参数,用于post方法

.json()  # 序列化

.text  # 以text文本输出
.content  # 以二进制输出,一般用于图片


# get方法
requests.get(url=url, params=params, headers=headers, verify=False)[.json()|.text|.content]

# post方法
requests.post(url=url, data=data, headers=headers, verify=False)[.json()|.text|.content]

requests.post(url=url, json=data, headers=headers, verify=False)[.json()|.text|.content]  # 当form_data是json格式的时候,需要这样写(很少用到)

# 出现乱码时,需指定编码形式
response = request.get(url, headers=headers)
response.encoding = 'utf-8'  # 指定utf-8编码
page_text = response.text

# 使用代理
requests.get(url, headers=headers, proxies={'http/https(具体看代理支持哪种)', '代理的ip:代理的端口'})  # proxies指定代理

# 使用Session对象解决cookie(注意: 使用Session对象,至少要调用两次)
sess = requests.Session()
sess.get(url, headers=headers)  # 产生cookie,自动保存cookie
sess.get(new_url, headers=headers)  # 使用保存的cookie访问

urilib模块和requests模块的简单对比

# urllib: 基于网络请求的模块,是requests模块的前身

# requests模块爬取图片并保存到本地
import requests

img_src = "www.url.com..."
img_data = requests.get(url=url, headers=headers).content
with open("文件名", 'wb') as fp:
    fp.write(img_data)
   
# urllib模块爬取图片并保存到本地
from urllib import request

img_src = "www.url.com..."
request.urlretrieve(img_src, '文件名')  # 无法模拟请求头
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值