使用selenium抓取网页内容

本文档记录了使用selenium抓取动态加载网页内容的过程,特别是针对百度文库的案例。由于网页内容分页且动态加载,selenium通过javascript与浏览器交互,模拟用户滚动行为来获取完整信息。文中提到了selenium的两种滚动方式,一种是滚动到特定位置,另一种是模拟用户自然滚动。
摘要由CSDN通过智能技术生成

      关于适用selenium抓文档的一个简单记录,以百度文库为例。selenium的原理大概是:利用javascript语句与浏览器驱动交互,从而控制浏览器操作网页的行为。

      而使用selenium实现爬虫一般是因为网页是动态加载的,目标内容需要经过一定操作才能在元素审查中出现。以百库文库为例(https://wenku.baidu.com/view/217d303c76eeaeaad0f33075.html),较大的文档的展示一般是通过分页展示,并且每一页的内容不会全部加载,要在浏览到当前页才会加载当前几页的内容。像这个文档,一次显示五十页,但是只会加载当前浏览进度处的三叶内容。因此要自动抓取这个内容需要实现滚动功能。

selenium有两种滚动方式:

第一种,滚动到特定位置“:

driver.execute_script('var q=document.body.scrollTop=3500') 滚动到页面的3500像素处(从上往下)(通过网页审查可以看到整个网页的像素大小)
第二种,以当前位置为参照,滚动一定距离:

                
使用Selenium可以方便地抓取网页内容。我们可以使用Selenium Python绑定提供的API来访问Selenium WebDriver的功能。下面是一个使用Selenium从动态加载的网页中抓取数据的示例代码: ``` from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC url = 'https://www.example.com' driver = webdriver.Chrome() # 使用Chrome浏览器,需要先安装ChromeDriver并设置环境变量 driver.get(url) # 等待页面元素加载完成 wait = WebDriverWait(driver, 10) wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'div.example_element'))) # 使用CSS选择器定位元素并获取文本内容 element = driver.find_element_by_css_selector('div.example_element') text = element.text.strip() # 打印抓取的内容 print(text) driver.quit() # 关闭浏览器 ``` 以上示例演示了如何使用Selenium WebDriver和Python来抓取网页的内容。更具体地说,我们使用WebDriver打开了一个网页,等待指定的元素加载完成后,通过CSS选择器定位元素并获取其文本内容。最后,我们打印出抓取的内容。请注意,在运行代码之前,您需要安装ChromeDriver,并设置环境变量以便Selenium可以找到它。123 #### 引用[.reference_title] - *1* [使用Selenium爬取网页内容](https://blog.csdn.net/CoCo629vanilla/article/details/126266287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* *3* [使用Python和Selenium抓取网页内容](https://blog.csdn.net/weixin_39915649/article/details/131120944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值