python爬虫(requests+bs4的基本使用)

直接贴上代码,都有注释说明

# -*- coding: utf-8 -*-
# author:Gary
# 第一步,导入需要用到的库
import requests
from bs4 import BeautifulSoup

# 第二步,请求网页内容
url = 'https://gary666.com/'  # 需要请求的网页的链接
html = requests.get(url)  # get方式请求数据
# print(html.status_code)  # 查看请求的状态码(200表示请求正常)
html.encoding = html.apparent_encoding  # 设置编码,防止由于编码问题导致文字错乱
# print(html.text)  # 查看请求到的内容
content = html.text

# 第三步,解析你需要的内容
# 解析器自带的是html.parser,也可以用lxml,兼容性更好,不过要单独安装第三方库
soup = BeautifulSoup(content, "html.parser")
# 1 按标签名查找标签
# soup.标签名 # 获取第一个匹配到的标签
print('获取第一个匹配到的超链接', soup.a)  # 获取第一个匹配到的超链接

# 2 属性
# soup.标签名.attrs # 获取标签中所有属性名与对应属性值的字典
print('获取超链接中所有属性名与对应属性值的字典', soup.a.attrs)  # 获取超链接中所有属性名与对应属性值的字典
# soup.标签名.attrs["属性名"]获取属性名对应的属性值
print('获取超链接href属性对应的属性值', soup.a.attrs["href"])  # 获取超链接href属性对应的属性值
# soup.标签名["属性名"]获取属性名对应的属性值的简写
print('获取超链接href属性对应的属性值的简写', soup.a["href"])  # 获取超链接href属性对应的属性值的简写
# soup.标签名.string  # 获取第一个匹配到的标签的内容
print('获取第一个匹配到的超链接的内容', soup.a.string)  # 获取第一个匹配到的超链接的内容
# soup.标签名.text  # 获取第一个匹配到的标签以及其所包含的子标签的所有内容
print('获取第一个匹配到的超链接以及其所包含的子标签的所有内容', soup.a.text)  # 获取第一个匹配到的超链接以及其所包含的子标签的所有内容

# 3 函数
# soup.标签名.get_text()  # 同soup.标签名.text
print(soup.a.get_text())  # 同soup.a.text
# soup.find("标签名") # 同soup.标签名
print(soup.find("a"))  # 同soup.a
print(soup.find("a", href="/detail?dbname=life&num=35"))  # 根据属性值定位到第一个匹配到的标签
# 注意: 若属性名是 class 则需要在后面加个下划线,写成 class_
# soup.find_all("标签名") # 获取匹配到的所有标签, 返回一个列表
a_list = soup.find_all("a")  # 获取所有的超链接
for a in a_list:  # 循环查看每个超链接的文字和url
    if a.string is None:  # 如果超链接的内容为空
        continue
    else:
        print(a.string + ":" + a.get("href"))
# soup.find_all(["标签1", "标签2"])   可以获取多种类的标签,通过列表指定获取的多个标签
soup.find_all(["a", "div"])  # 可以获取多种类的标签,通过列表指定获取的多个标签
# soup.find_all("标签名", limit=int(n))  # limit参数指定获取个数,为整数
print(soup.find_all("a", limit=2))  # 获取前2个匹配到的超链接

# 第四步,存储数据

  • 9
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值