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()

总结

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

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

啊哈~~~

相关推荐
如若1238 分钟前
对文件内的文件名生成目录,方便查阅
java·前端·python
西猫雷婶37 分钟前
python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
开发语言·python·opencv
老刘莱国瑞1 小时前
STM32 与 AS608 指纹模块的调试与应用
python·物联网·阿里云
一只敲代码的猪2 小时前
Llama 3 模型系列解析(一)
大数据·python·llama
Hello_WOAIAI3 小时前
批量将 Word 文件转换为 HTML:Python 实现指南
python·html·word
winfredzhang3 小时前
使用Python开发PPT图片提取与九宫格合并工具
python·powerpoint·提取·九宫格·照片
矩阵推荐官hy147623 小时前
短视频矩阵系统种类繁多,应该如何对比选择?
人工智能·python·矩阵·流量运营
测试19983 小时前
外包干了2年,技术退步明显....
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
码银3 小时前
【python】银行客户流失预测预处理部分,独热编码·标签编码·数据离散化处理·数据筛选·数据分割
开发语言·python
小木_.3 小时前
【python 逆向分析某有道翻译】分析有道翻译公开的密文内容,webpack类型,全程扣代码,最后实现接口调用翻译,仅供学习参考
javascript·python·学习·webpack·分享·逆向分析