day14bs4模块(BeautifulSoup)

bs4模块(BeautifulSoup)

导入requests模块

import requests
from bs4 import BeautifulSoup

bs4模块能够从html或者xml提取数据:

URL = 'https://movie.douban.com/top250'
# 将爬虫伪装成浏览器
Headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}
resp = requests.get(url=URL,headers=Headers)
# 打印状态码,如果状态码是200表示爬虫可以在该网站上使用
print(resp.status_code)
# 打印爬虫获取的数据
print(resp.text)

静态页面和动态页面

网页分为静态页面和动态页面:
静态页面:内容是写死的,除非人为地进行修改,否则这个页面的内容是一成不变的。

动态页面:内容不是写死的,使用某种特殊的技术(JavaScript)使数据通过某种方式显示在页面中。

requests得到的结果使静态页面的结果。

BeautifulSoup(网页源码解析器)将字符串类型的源代码转换为bs4类型。

bs4模块提供了一系列提取数据的方法,这些方法的操作对象的bs4类型的数据。

URL = f'https://www.chinanews.com.cn/scroll-news/news{page}.html'
# 这里的Header是字典的类型
Header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}
resp = requests.get(url=URL, headers=Header)
# 获取网页的前端代码
soup = BeautifulSoup(resp.text, 'html.parser')
print(soup)

按网页前端代码选择器爬取所需内容

select:根据CSS选择器(标签、class、id等)定位数据,得到的是符合这个选择器的所有结果,拿到的结果整体是列表,列表中每个元素是一个bs4类型的数据。

select_one:根据CSS选择器(标签、class、id等)定位数据,得到的是符合这个选择器的结果,是一个bs4类型的数据。

text:从bs4类型数据中提取标签内的内容。

arrtrs:从bs4类型数据中提取标签内容属性值,结果是str。

new_herf = 'https://www.chinanews.com.cn' + i.select_one('li>.dd_bt>a').attrs['href']

这里体现的是href获取标签内容的属性值,并且可以进行字符串操作。

new_title = i.select_one('li>.dd_bt>a').text

这里体现的是text获取标签的内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值