【Python学习】Day-026 浏览器伪装、bs4数据解析

1. 浏览器伪装

requests发送请求时传入headers(user-agent)

import requests

headers = {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
}
response = requests.get('https://movie.douban.com/top250', headers=headers)

print(response.text)

2. bs4数据解析

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

# bs4的用法
# 1)准备需要解析的数据(获取网页数据)
html = open('files/test.html', encoding='utf-8').read()

# 2)基于网页源代码创建BeautifulSoup对象
# soup对象代表网页对应的html标签(代表整个网页)
soup = BeautifulSoup(html, 'lxml')
# soup = BeautifulSoup(html, 'html.parser')

# 3)获取标签
# soup.select(css选择器)   -   在整个网页中获取css选择器选中的所有标签,返回值是一个列表,列表中元素是标签对象
# soup.select_one(css选择器)   -   在整个网页中获取css选择器选中的第一个标签,返回值是标签对象
result = soup.select('#box1 p')
print(result)       # [<p>肖生克的救赎</p>, <p>霸王别姬</p>, <p>阿甘正传</p>]

result = soup.select_one('#box1 p')
print(result)       # <p>肖生克的救赎</p>

# 标签对象.select(css选择器)       -       在指定标签中获取css选择器选中的所有表情,返回值是一个列表,列表中元素是标签对象
# 标签对象.select_one(css选择器)   -       在指定标签中获取css选择器选中的第一个标签,返回值是标签对象
result = soup.select('p')
print(result)       # [<p>肖生克的救赎</p>, <p>霸王别姬</p>, <p>阿甘正传</p>, <p>我是段落1</p>]

box2 = soup.select_one('#box2')
result = box2.select('p')
print(result)       # [<p>我是段落1</p>]

# 4)获取标签内容和标签属性
p = soup.select_one('p')            #  <p>肖生克的救赎</p>
img = soup.select_one('img')

# a. 获取标签内容: 标签对象.text
print(p.text)       # '肖生克的救赎'

# b.获取标签属性值: 标签对象.attrs[属性名]
print(img.attrs['src'], img.attrs['alt'])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值