母婴产品网站模板,建站赔补,网站建设设计时代创信好,网站开发php有哪些今天来点不一样的#xff01;哥们 提示#xff1a; 这里只是用于自己学习的 #xff0c;请勿用违法地方 效果图 会进行点击下一页 进行抓取 需要其他操作也可以自己写 文章目录 今天来点不一样的#xff01;哥们前言一、上代码#xff1f;总结 前言
爬虫是指通过编程自动…今天来点不一样的哥们 提示 这里只是用于自己学习的 请勿用违法地方 效果图 会进行点击下一页 进行抓取 需要其他操作也可以自己写 文章目录 今天来点不一样的哥们前言一、上代码总结 前言
爬虫是指通过编程自动化地获取互联网上的信息的过程。在Python中有许多强大的库和框架可用于实现爬虫其中最常用的是Beautiful Soup和Requests库。
在开始编写爬虫之前有一些重要的考虑事项
合法性和道德性 确保你的爬虫活动是合法的并遵守网站的使用规定。爬虫不应该违反任何法律或侵犯隐私权。
robots.txt 文件 在爬取网站之前检查网站的robots.txt文件这是网站所有者用来指导爬虫的文件。尊重这些规则以避免潜在的法律问题。
频率和速率 控制爬虫的访问速率以防止对服务器造成过大的负担。设置适当的延迟和间隔以模拟真实用户的行为。
HTML基础 了解基本的HTML结构和标签因为大多数爬虫任务都涉及到解析HTML文档。 提示以下是本篇文章正文内容下面案例可供参考
一、上代码
import timefrom bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import Byurl https://ref.cnki.net/REF/AdvSearch/Index?colName%E8%A2%AB%E5%BC%95%E4%B8%BB%E9%A2%98colValue%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6isJumptrue#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和tablelist_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(stripTrue)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(stripTrue) 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[classnext])next_page_button.click()# 继续抓取下一页scrape_page()except NoSuchElementException:print(没有找到下一页按钮退出循环。)break
# 关闭驱动
driver.quit() 总结
我这个是抓取然后进行点击然后又进行抓取还挺好玩 要弄其他的都是这种格式模板 啊哈~~~