码迷,mamicode.com
首页 > 编程语言 > 详细

python 利用selenium爬取百度文库的word文章

时间:2019-09-30 23:53:41      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:support   linux   位置   imp   报错   script   收费   elements   img   

今天学习如何使用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文章

标签:support   linux   位置   imp   报错   script   收费   elements   img   

原文地址:https://www.cnblogs.com/gaoshiguo/p/11614266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!