20 - 爬虫伪装和bs4数据解析

Day 20

一、 图片下载

1.网页图片下载

  • 如果需要对网页上的图片进行下载,需要得到图片的地址,在利用 requests请求图片地址进行下载,但需要主要的是,在对图片、视频等文件保存时,需要对文件进行二进制保存。

2.图片下载顺序

    1. 对图片地址发送请求
    1. 获取图片数据
    1. 将数据写入图片文件中
import requests


def download_image(url: str):
    # 1. 对图片地址发送请求
    response = requests.get(url)

    # 2.获取图片数据
    data = response.content

    # 3. 将数据写入图片文件中
    with open('files/宝儿姐.jpeg', 'wb') as f:
        f.write(data)


if __name__ == '__main__':
    download_image('https://img0.baidu.com/it/u=1668990314,419582566&fm=253&fmt=auto&app=138&f=JPEG?w=350&h=350')

二、浏览器伪装

1.对爬虫进行伪装

  • 在我们使用爬虫对所需网页数据进行爬取时,很多网站都会设置有反爬机制,我们需要对我们的爬虫进行伪装。

2…headers = {}

  • headers是一个字典:{key:value}
  • headers是给爬虫提供伪装的
  • User-Agent --> 将爬虫伪装成浏览器
  • User-Agent获取方法
import requests

headers = {
    'user-agent': ******************
}
response = requests.get('https://movie.douban.com/top250', headers=headers)

print(response.text)

三、bs4数据解析

1.bs4的作用

  • 专门用来解析网页数据的第三方库。(基于css选择器解析网页数据)
  • 这个库下载的时候用’beautifulsoup4’, 使用的时候用’bs4’
  • 注意:在使用bs4做数据解析的时候,需要依赖’lxml’这个第三方
  • 导入解析相关类
from bs4 import BeautifulSoup

2. bs4的用法

  • 1.备需要解析的数据(获取网页数据)
html = open('files/test.html', encoding='utf-8').read()
  • 2.基于网页源代码创建BeautifulSoup对象
  • soup对象代表网页对应的html标签(代表整个网页)
soup = BeautifulSoup(html, 'lxml')
    1. 获取标签
    • soup.select(css选择器) - 在整个网页中获取css选择器选中的所有标签,返回值是一个列表,列表中元素是标签对象
    • soup.select_one(css选择器) - 在整个网页中获取css选择器选中的第一个标签,返回值是标签对象
    • 标签对象.select(css选择器) - 在指定标签中获取css选择器选中的所有表情,返回值是一个列表,列表中元素是标签对象
    • 标签对象.select_one(css选择器) - 在指定标签中获取css选择器选中的第一个标签,返回值是标签对象
  • 4.获取标签内容和标签属性

    • a. 获取标签内容: 标签对象.text
    • b.获取标签属性值: 标签对象.attrs[属性名]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值