该代码主要实现了以下功能:

  1. 导入需要的 Python 库:requests、BeautifulSoup 和 openpyxl。
  2. 定义了三个函数,分别是获取相关关键词 get_related_keywords、获取下拉框关键词 get_dropdown_keywords 和将数据保存到 Excel 文件中 save_to_excel
  3. 在主函数中定义了三个关键词,通过调用前面的三个函数获取相关关键词和下拉框关键词,并将数据保存到 Excel 文件中。

代码解析:

import requests
from bs4 import BeautifulSoup
import openpyxl


def get_related_keywords(keyword):
    url = 'https://www.baidu.com/s'
    params = {
        'wd': keyword,
        'rn': '10',
        'tn': 'baidurt',
        'ie': 'utf-8',
        'rqlang': 'cn',
        'rsv_dl': 'tb',
        'rsv_srlang': 'cn',
        'rsv_rq': 'off'
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }
    res = requests.get(url, params=params, headers=headers)
    soup = BeautifulSoup(res.text, 'html.parser')
    related_keywords = []
    for related in soup.select('.tip'):
        related_keywords.append(related.text.strip())
    return related_keywords


def get_dropdown_keywords(keyword):
    url = 'https://www.baidu.com/sugrec'
    params = {
        'prod': 'pc',
        'wd': keyword,
        'cb': 'window.baidu.sug'
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
    }
    res = requests.get(url, params=params, headers=headers)
    soup = BeautifulSoup(res.text, 'html.parser')
    dropdown_keywords = []
    for dropdown in soup.select('.suglist li'):
        dropdown_keywords.append(dropdown.text.strip())
    return dropdown_keywords


def save_to_excel(data):
    wb = openpyxl.Workbook()
    ws = wb.active
    ws.append(['Keyword', 'Related Keywords', 'Dropdown Keywords'])
    for row in data:
        ws.append(row)
    wb.save('keywords.xlsx')


if __name__ == '__main__':
    keywords = ['Python', '数据分析', '机器学习']
    data = []
    for keyword in keywords:
        related_keywords = get_related_keywords(keyword)
        dropdown_keywords = get_dropdown_keywords(keyword)
        row = [keyword, ', '.join(related_keywords), ', '.join(dropdown_keywords)]
        data.append(row)
    save_to_excel(data)

代码说明:

  • get_related_keywords 函数:
    • 使用 requests 库发送 GET 请求到百度搜索页面,获取搜索结果页面 HTML 代码。
    • 使用 BeautifulSoup 库解析 HTML 代码,找到包含相关关键词的元素 '.tip'
    • 将相关关键词提取出来并存储到列表中,最后返回列表。
  • get_dropdown_keywords 函数:
    • 使用 requests 库发送 GET 请求到百度下拉框建议 API,获取下拉框建议数据。
    • 使用 BeautifulSoup 库解析数据,找到包含下拉框关键词的元素 '.suglist li'
    • 将下拉框关键词提取出来并存储到列表中,最后返回列表。
  • save_to_excel 函数:
    • 使用 openpyxl 库创建新的 Excel 工作簿。
    • 将标题行和数据写入到工作簿中。
    • 将工作簿保存到名为 keywords.xlsx 的文件中。

注意事项:

  • 该代码使用百度搜索和下拉框建议 API,需要遵守相关使用规则和协议。
  • 由于网站结构可能会发生变化,需要根据实际情况调整代码中的选择器。
  • 建议使用代理服务器,避免对网站造成过大的访问压力。
Python 爬虫获取百度搜索相关关键词和下拉框关键词并保存到Excel

原文地址: https://www.cveoy.top/t/topic/mA6V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录