python 利用selenium爬取百度文库的word文章
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 利用selenium爬取百度文库的word文章,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1996字,纯文字阅读大概需要3分钟。
内容图文
今天学习如何使用selenium库来爬取百度文库里面的收费的word文档
from selenium import webdriver from selenium.webdriver.common.keys import Keys from pyquery import PyQuery as pq from selenium.webdriver.support.ui import WebDriverWait from selenium import webdriver import time options = webdriver.ChromeOptions() options.add_argument('user-agent="Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"') driver = webdriver.Chrome('D:/chromedriver.exe',options=options) url="https://wenku.baidu.com/view/aa31a84bcf84b9d528ea7a2c.html" driver.get(url) html=driver.page_source page=driver.find_elements_by_xpath("/html/body/div[2]/div[2]/div[6]/div[2]/div[2]/div[1]/div/div[1]")#使用page标记记录百度文库中向下翻页的位置 driver.execute_script('arguments[0].scrollIntoView();', page)
结果运行报错:
因为在百度文库页面底部需要点击“继续阅读”才可以加载到完整的页面,所以必须使用这两行代码
page=driver.find_elements_by_xpath("/html/body/div[2]/div[2]/div[6]/div[2]/div[2]/div[1]/div/div[1]")#使用page标记记录百度文库中向下翻页的位置 driver.execute_script('arguments[0].scrollIntoView();', page)
来将浏览器滚动到“继续阅读”这个位置,然后执行点击按钮。
但是却爆出了黄色部分的错误。找了好久,最后在stackoverflow上找到了答案,不得不说,stackoverflow还是强啊
这哥们说,
scrollIntoView()
这个函数是属于DOM API ,因此你应该使用一个web元素来调用它,而不是一个web元素列表来使用它。
这是我认识到,我可能定位的元素并不是一个,所以我又重新定位了一下元素,更改的代码如下:
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome('D:/chromedriver.exe') driver.get("https://wenku.baidu.com/view/aa31a84bcf84b9d528ea7a2c.html") page = driver.find_element_by_xpath("//*[@id='html-reader-go-more']/div[2]/div[1]/span/span[2]") driver.execute_script('arguments[0].scrollIntoView();', page) #拖动到可见的元素去 driver.find_element_by_xpath("//*[@id='html-reader-go-more']/div[2]/div[1]/p").click()
然后就可以自动的加载所有文档内容啦
内容总结
以上是互联网集市为您收集整理的python 利用selenium爬取百度文库的word文章全部内容,希望文章能够帮你解决python 利用selenium爬取百度文库的word文章所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。