使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章

这篇具有很好参考价值的文章主要介绍了使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍:

本文章将介绍如何使用Python的Selenium库和正则表达式对CSDN的活动文章进行爬取,并将爬取到的数据导出到Excel文件中。

界面展示

使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章

知识点详解

使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章

导入相关模块

首先,我们需要导入以下模块:

import re                    # 用于处理正则表达式的模块
import time                  # 用于暂停执行的模块
import pandas as pd          # 用于创建和操作数据表格的模块
from selenium import webdriver                      # 用于控制浏览器的模块
from selenium.webdriver.chrome.service import Service    # 用于创建ChromeDriver服务的模块
from selenium.webdriver.common.by import By                 # 用于定位元素的模块
from selenium.webdriver.common.action_chains import ActionChains    # 用于模拟鼠标操作的模块
from selenium.webdriver.common.keys import Keys            # 用于模拟键盘操作的模块
  • re是Python内置的正则表达式模块,用于处理字符串匹配和搜索。
  • time模块提供了一些与时间相关的函数,我们可以使用它来暂停程序的执行。
  • pandas是一个强大的数据分析库,用于创建和操作数据表格。
  • selenium是一个用于自动化浏览器操作的库,我们使用它来控制Chrome浏览器进行页面爬取。

设置Chrome驱动程序的路径

在代码中指定Chrome驱动程序的路径:

driver_path = 'path_to_chrome_driver'

请将path_to_chrome_driver替换为实际的Chrome驱动程序的路径。

创建ChromeDriver服务和启动Chrome浏览器

创建ChromeDriver服务和启动Chrome浏览器:

service = Service(driver_path)    # 创建ChromeDriver服务
options = webdriver.ChromeOptions()    # 创建Chrome浏览器选项
options.add_argument('--headless')    # 可选设置,无界面模式
driver = webdriver.Chrome(service=service, options=options)    # 启动Chrome浏览器

这样就成功创建了ChromeDriver服务,并启动了Chrome浏览器。

发送GET请求获取网页内容

使用driver.get(url)方法发送GET请求,获取CSDN活动页面的网页内容:

url = 'https://activity.csdn.net/creatActivity?utm_source=324486289&id=10478&spm=1011.2433.3001.6900'
driver.get(url)

模拟向下滚动加载更多内容

为了获取页面的全部内容,我们需要模拟向下滚动加载更多内容。这里我们使用JavaScript脚本来执行滚动操作:

while True:
    prev_height = driver.execute_script('return document.body.scrollHeight')
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(5)
    new_height = driver.execute_script('return document.body.scrollHeight')
    if new_height == prev_height:
        break

代码使用了一个循环来不断执行滚动操作,直到页面没有新内容出现为止。

获取完整的HTML内容

在滚动加载完所有内容后,我们可以通过driver.page_source属性获取完整的HTML内容:

html_content = driver.page_source

关闭浏览器

完成所有爬取操作后,记得关闭浏览器:

driver.quit()

使用正则表达式提取文章信息

使用正则表达式模式来提取CSDN活动文章的信息,并将结果存储到matches列表中:

pattern = r'<div class="article-tit"><a href="(.*?)" target="_blank">(.*?)<\/a><\/div><div class="article-dec">(.*?)<\/div><div class="article-status">.*?<a href="(.*?)" target="_blank" class="text">(.*?)<\/a>.*?<span class="text">发布博客 (.*?)<\/span>'
matches = re.findall(pattern, html_content)

注意 : 确保正则表达式模式与目标网页的HTML结构相匹配。

构建数据表格和导出到Excel

我们使用Pandas库来构建数据表格,并将爬取到的数据导出到Excel文件中:

data = []
for match in matches:
    url = match[0]
    title = match[1]
    content = match[2].strip()
    author_url = match[3]
    author = match[4]
    publish_date = match[5]

    data.append({
        '标题': title,
        '链接': url,
        '内容': content,
        '作者': author,
        '发布日期': publish_date,
        '作者链接': author_url
    })

df = pd.DataFrame(data)    # 创建数据帧
df.sort_values(by='作者', inplace=True)    # 按照作者进行排序

output_path = 'output.xlsx'    # 导出路径
with pd.ExcelWriter(output_path) as writer:
    df.to_excel(writer, sheet_name='文章列表', index=False)    # 导出到Excel文件

print('结果已导出到Excel文件:', output_path)

扩展知识点

使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章

  1. Selenium:Selenium是一个用于自动化浏览器操作的工具。通过Selenium可以模拟用户在浏览器中的行为,例如打开网页、点击按钮、填写表单等。它支持多种浏览器,包括Chrome、Firefox、Safari等。
  2. 正则表达式:正则表达式是一种强大的文本处理工具,用于在字符串中匹配和提取特定模式的文本。它可以通过一些特殊字符和语法规则来描述字符串的模式,并进行匹配操作。在爬虫中,正则表达式常用于从网页源代码中提取目标信息。
  3. Pandas:Pandas是Python中常用的数据分析和数据处理库。它提供了丰富的数据操作和处理功能,可以方便地进行数据清洗、转换、合并等操作。在本文中,我们使用Pandas来构建数据表格并导出到Excel文件中。

代码示例

完整代码示例如下所示:

# 导入相关模块
import re
import time
import pandas as pd
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 设置Chrome驱动程序的路径
driver_path = 'path_to_chrome_driver'

# 创建ChromeDriver服务
service = Service(driver_path)

# 启动Chrome浏览器
options = webdriver.ChromeOptions()
options.add_argument('--headless')  # 无界面模式,可选设置
driver = webdriver.Chrome(service=service, options=options)

# 发送GET请求获取网页内容
url = 'https://activity.csdn.net/creatActivity?utm_source=324486289&id=10478&spm=1011.2433.3001.6900'
driver.get(url)

# 模拟向下滚动加载更多内容
while True:
    prev_height = driver.execute_script('return document.body.scrollHeight')
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(5)
    new_height = driver.execute_script('return document.body.scrollHeight')
    if new_height == prev_height:
        break

# 获取完整的HTML内容
html_content = driver.page_source

# 关闭浏览器
driver.quit()

# 使用正则表达式模式提取文章信息
pattern = r'<div class="article-tit"><a href="(.*?)" target="_blank">(.*?)<\/a><\/div><div class="article-dec">(.*?)<\/div><div class="article-status">.*?<a href="(.*?)" target="_blank" class="text">(.*?)<\/a>.*?<span class="text">发布博客 (.*?)<\/span>'
matches = re.findall(pattern, html_content)

# 构建数据表格
data = []
for match in matches:
    url = match[0]
    title = match[1]
    content = match[2].strip()
    author_url = match[3]
    author = match[4]
    publish_date = match[5]

    data.append({
        '标题': title,
        '链接': url,
        '内容': content,
        '作者': author,
        '发布日期': publish_date,
        '作者链接': author_url
    })

# 创建数据帧
df = pd.DataFrame(data)

# 按照作者进行排序
df.sort_values(by='作者', inplace=True)

# 导出到Excel文件
output_path = 'output.xlsx'
with pd.ExcelWriter(output_path) as writer:
    df.to_excel(writer, sheet_name='文章列表', index=False)

print('结果已导出到Excel文件:', output_path)

最终效果

使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章

总结

本文介绍了使用Selenium和正则表达式爬取CSDN的活动文章信息,并将爬取到的数据导出到Excel文件中。 赶快去试试吧!!!文章来源地址https://www.toymoban.com/news/detail-505976.html

到了这里,关于使用Python和Selenium自动化爬取 #【端午特别征文】 探索技术极致,未来因你出“粽” # 的投稿文章的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用Python爬取某查查APP端(Appium自动化篇)

      某查查网站反爬虫风控还是较强的,之后会分别介绍一下 PC端协议、APP端自动化、APP端接口协议 三种采集方案。这里主要介绍APP端的自动化方式,APP端自动化方式需要登陆账号,协议的话需要签名授权( 自动化经测试没有太多限制、走协议接口的话账号与次数有捆绑 )

    2024年02月13日
    浏览(38)
  • Python自动化实战之使用Selenium进行Web自动化详解

    为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何将它应用于实际项目中。如果你是一名Python爱好

    2024年02月13日
    浏览(48)
  • 如何使用Python自动化测试工具Selenium进行网页自动化?

    Selenium 是一个流行的Web自动化测试框架, 它支持多种编程语言和浏览器,并提供了丰富的API和工具来模拟用户在浏览器中的行为 。 Selenium可以通过代码驱动浏览器自动化测试流程,包括页面导航、元素查找、数据填充、点击操作等。 与PyAutoGUI和AutoIt相比, Selenium更适合于处

    2023年04月09日
    浏览(120)
  • Python Selenium网页自动化利器使用详解

    Selenium是一个自动化测试工具,主要用于模拟用户在Web应用程序中的交互操作。虽然它最初被设计用于自动化测试,但也被广泛用于网页数据抓取、网页自动化操作和网页测试。 首先,需要安装Selenium库。使用pip来安装Selenium: 1 pip install selenium 此外,需要下载并安装一个浏览

    2024年01月18日
    浏览(69)
  • python Web自动化之Selenium的基本使用

    1.selenium介绍 概述 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。 优势 开源软件:源代码开放,可根据需要来增加工具的某些功能; 跨平台:linux、windows、mac; 多语言:支持Java、Python、C#、JavaScript、Ruby等。 WebDriv

    2023年04月08日
    浏览(39)
  • 使用Python+selenium实现第一个自动化测试脚本

    这篇文章主要介绍了使用Python+selenium实现第一个自动化测试脚本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 最近在学web自动化,记录一下学习过程。 此处我选用python3.6+selenium3.0,均用

    2024年02月03日
    浏览(56)
  • Python自动化测试工具selenium使用指南

    概述 selenium 是网页应用中最流行的自动化测试工具,可以用来做自动化测试或者浏览器爬虫等。官网地址为:相对于另外一款web自动化测试工具QTP来说有如下优点: 免费开源轻量级,不同语言只需要一个体积很小的依赖包 支持多种系统,包括Windows,Mac,Linux 支持多种浏览器

    2024年02月04日
    浏览(63)
  • Python Selenium实现自动化测试及Chrome驱动使用!

    本文将介绍如何使用Python Selenium库实现自动化测试,并详细记录了Chrome驱动的使用方法。 通过本文的指导,读者将能够快速上手使用Python Selenium进行自动化测试。 并了解如何配置和使用Chrome驱动来实现更高效的自动化测试。 一、Python Selenium简介 Python Selenium是一个用于Web应用

    2024年03月10日
    浏览(65)
  • Python Selenium实现自动化测试及Chrome驱动使用

    本文将介绍如何使用 Python   Selenium 库实现 自动化测试 ,并详细 记录 了Chrome驱动的使用方法。 通过本文的指导,读者将能够快速上手使用Python Selenium进行自动化测试。 并了解如何配置和使用Chrome驱动来实现更高效的自动化测试。 一、Python Selenium简介 Python Selenium是一个用于

    2024年02月03日
    浏览(60)
  • web自动化框架:selenium学习使用操作大全(Python版)

    Selenium需要浏览器驱动程序才能与所选浏览器交互。例如,Firefox需要安装geckodriver。确保它在PATH中。 主流浏览器驱动下载地址如下: 浏览器 驱动名称 打开方式及注意事项 地址 Chrome chromedriver driver = webdriver.Chrome() 下载浏览器对应版本的chromedriver.exe 一定要创建对象,不然打

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包