欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-02 23:45:49
直接贴上代码,都有注释说明# -*- coding: utf-8 -*-# author:Gary# 第一步,导入需要用到的库import requestsfrom bs4 import BeautifulSoup# 第二步,请求网页内容url = 'https://gary666.com/' # 需要请求的网页的链接html = requests.get(url) # get方式请求数据# print(html.status_code) # 查看请求的状态码(200表示请求正常)...

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

# -*- 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

# 第三步,解析你需要的内容
soup = BeautifulSoup(content, "lxml")
# 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个匹配到的超链接

# 第四步,存储数据

本文地址:https://blog.csdn.net/weixin_44388092/article/details/107297083