selenium是一个强大的Python库,它可以控制浏览器打开、输入、点击等操作,就像是有一个真正的用户在操作一样 静态网页:就是单纯用HTML语言写出来的网页就是静态网页 动态网页:像类似于QQ音乐这种需要的数据不在HTML源代码中,而是在JSON中,在爬取的时候就需要找到JSON数据的真实url,这种 就是动态网页 使用selenium时需要使用浏览器的驱动,如果使用谷歌浏览器的话,需要下载对应的或者是近似版本的谷歌驱动,谷歌驱动 下载网址:http://npm.taobao.org/mirrors/chromedriver/ 1、使用selenium时,首先需要从selenium中导入webdriver函数,然后生成一个webdriver.Chrome()对象 from selenium import webdriver driver=webdriver.Chrome() 2、生成webdriver.Chrome()对象之后开始使用get函数来打开需要获取数据的网页 driver.get("网页网址") 3、中间是需要操作的代码 4、最后是关闭浏览器 driver.close() 5、selenium模块用来提取数据的方法: find_element_by_id 通过元素的id值来选择 find_element_by_class_name 通过元素的class来选择 find_element_by_tag_name 通过元素的标签名[tag]来选择 find_element_by_name 通过元素的name来选择 find_element_by_partial_link_text 通过链接的部分文本来获取超链接 find_element_by_link_text 通过链接的文本来获取超链接
find_element_by_与BeautifulSoup中的find类似,可以提取出网页中第一个符合要求的元素; 既然BeautifulSoup有提取所有元素的方法find_all,selenium也同样有方法,方法很简单,把 方法中的element修改为elements就行,比如find_element_by_id修改之后就是find_elements_by_id; 6、Selenium操作元素常用方法: .clear() 清除元素内的内容 .send_keys() 模拟键盘输入,常用于自动填写表单 .click() 模拟点击元素 7、WebElement与Tag的用法对比: WebElement.text Tag.text 获取文字 WebElement.get_attribute() Tag[] 带参数(属性名),可以获取属性值 8、selenium可以与BeautifulSoup一起合作来爬取需要的内容,在requests.get()获取网页之后在交给BeautifulSoup 之前需要使用.text来将网页转换为字符串,但是selenium里面不需要使用.text,直接使用page_source属性就可以, 等到获取到字符串的类型的源数据之后就可以使用BeautifulSoup来解析和提取数据了