python 写自动点击爬取数据

今天来点不一样的!哥们

提示: 这里只是用于自己学习的 ,请勿用违法地方

效果图

会进行点击下一页 进行抓取

需要其他操作也可以自己写


文章目录


前言

爬虫是指通过编程自动化地获取互联网上的信息的过程。在Python中,有许多强大的库和框架可用于实现爬虫,其中最常用的是Beautiful Soup和Requests库。

在开始编写爬虫之前,有一些重要的考虑事项:

合法性和道德性: 确保你的爬虫活动是合法的,并遵守网站的使用规定。爬虫不应该违反任何法律或侵犯隐私权。

robots.txt 文件: 在爬取网站之前,检查网站的robots.txt文件,这是网站所有者用来指导爬虫的文件。尊重这些规则以避免潜在的法律问题。

频率和速率: 控制爬虫的访问速率,以防止对服务器造成过大的负担。设置适当的延迟和间隔,以模拟真实用户的行为。

HTML基础: 了解基本的HTML结构和标签,因为大多数爬虫任务都涉及到解析HTML文档。


提示:以下是本篇文章正文内容,下面案例可供参考

一、上代码?

python 复制代码
import time

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By

url = "https://ref.cnki.net/REF/AdvSearch/Index?colName=%E8%A2%AB%E5%BC%95%E4%B8%BB%E9%A2%98&colValue=%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6&isJump=true#toolbarDiv"

# 使用Selenium进行动态加载
driver = webdriver.Chrome()
driver.get(url)


def scrape_page():
    # 等待一些时间,确保页面加载完成
    time.sleep(5)

    # 获取当前页面高度
    page_height = driver.execute_script(
        "return Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);")

    # 设置滚动步长
    scroll_step = 500

    # 模拟滚动
    for i in range(0, page_height, scroll_step):
        driver.execute_script("window.scrollTo(0, {});".format(i))
        time.sleep(1)  # 等待一些时间,确保内容加载

    # 获取滚动后的页面源代码
    html = driver.page_source

    # 使用BeautifulSoup解析页面内容
    soup = BeautifulSoup(html, 'html.parser')

    # 查找id为listContWrapper的div元素
    list_cont_wrapper = soup.find('div', {'id': 'listContWrapper'})

    # 如果找到了listContWrapper元素
    if list_cont_wrapper:
        # 在listContWrapper内部查找listCont和table
        list_cont = list_cont_wrapper.find('div', {'class': 'listCont'})
        table_elements = list_cont_wrapper.find_all('table')

        # 处理listCont的内容,根据实际情况进行调整选择器
        if list_cont:
            list_cont_data = list_cont.get_text(strip=True)
            print("listCont数据:", list_cont_data)

        # 遍历每个表格元素
        for table_element in table_elements:
            # 提取表格中的数据,可以根据实际情况进一步调整选择器
            rows = table_element.find_all('tr')
            for row in rows:
                # 提取每行中的单元格数据
                cells = row.find_all(['td', 'th'])
                row_data = [cell.get_text(strip=True) for cell in cells]
                print("表格行数据:", row_data)
    else:
        print("未找到id为listContWrapper的div元素")


# 初始抓取
scrape_page()

# 循环点击下一页按钮,直到没有下一页为止
while True:
    try:
        # 找到下一页按钮并点击
        next_page_button = driver.find_element(By.XPATH, '//a[@class="next"]')
        next_page_button.click()

        # 继续抓取下一页
        scrape_page()
    except NoSuchElementException:
        print("没有找到下一页按钮,退出循环。")
        break
# 关闭驱动
driver.quit()

总结

我这个是抓取然后进行点击然后又进行抓取,还挺好玩,

要弄其他的都是这种格式模板

啊哈~~~

相关推荐
wenwen_chao19 分钟前
Python学习与开发资源合集:实用技巧与工具推荐
python
for_ever_love__1 小时前
函数——参数、lambda、*args与作用域
python·函数·大模型开发·编程基础
东莞市云毅网络有限公司1 小时前
企业资料时效性判定:Last-Modified、正文日期与版本字段三路交叉
python·sqlite·自动化运维·geo·数据监测
Query*1 小时前
深入浅出LangGraph【一】_基础篇
python·ai·langchain
XiaoMaqqqq2 小时前
市面上正规的IP驱动产业新场景新工具哪家强
运维·python·网络协议·tcp/ip
ShyanZh2 小时前
【Python3基础】19-Socket 与 TCP、UDP 编程
python·网络协议·tcp/ip·udp
惊讶的猫3 小时前
工具选对之后还不够:商城 Agent 的参数与权限治理
开发语言·python
天赐范式3 小时前
天赐范式第186天:让方差开始自洽——Bulmer效应的闭式验证
python·数字生命·天赐范式·动态运行时·遗传方差·bulmer效应
泡茶喝茶写代码3 小时前
A股量化数据工程:从 REST 接口到策略信号(第 8 篇):成长能力因子:营收与利润增速
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口·股票数据api数据
Είναι η κοπέλα4 小时前
显存计算与模型选择:你的显卡能跑多大的模型
人工智能·pytorch·python·开源·conda