爬虫-selenium

特点

基于浏览器自动化的模块

可以模拟手动操作

1.便捷的获取网站中动态加载的数据

2.便捷的实现模拟登陆

3.可以获取js动态加载的数据

驱动下载和版本关系

http://chromedriver.storage.googleapis.com/index.html

http://blog.csdn.net/huilan_same/article/details/51896672

简单案例

from selenium import webdriver

from lxml import etree

#实例化一个浏览器对象,需要传入驱动

chrome=webdriver.Chrome(executable_path="chromedriver")

url='https://www.ixigua.com/i6701605562779435533/'

url2='http://125.35.6.84:81/xk'

#浏览器发起请求

chrome.get(url=url2)

#浏览器获取界面源码数据

page_text=chrome.page_source

print(page_text)

tree=etree.HTML(page_text)

c_name=tree.xpath("//ul[@id='gzlist']/li/dl/@title")

print(c_name)

#关闭浏览器

chrome.quit()

常用的方法

1.发起请求:get(url)

2.标签定位:find系列的方法

3.标签交互(想输入框添值):send_keys()

4.执行js程序:execute_script("jscode")

5.请进,返回:back()/forward()

6.关闭浏览器:quit()

from selenium import webdriver

import time

chrome=webdriver.Chrome(executable_path="chromedriver")

url="https://www.jd.com"

url2="https://www.baidu.com"

#发起请求

chrome.get(url)

#找到搜索框

input=chrome.find_element_by_id("key")

#将想要查询的内容填入搜索框内

input.send_keys("显卡")

#找到搜索按钮

button=chrome.find_element_by_xpath('//*[@id="search"]/div/div[2]/button')

#点击搜索

button.click()

time.sleep(2)

#跳转到百度

chrome.get(url2)

time.sleep(2)

#返回

chrome.back()

time.sleep(2)

#前进

chrome.forward()

chrome.back()

#向下滚动一个浏览器界面的长度

for i in range(3):

chrome.execute_script('window.scrollTo(0,document.body.scrollHeight)')

time.sleep(2)

time.sleep(3)

#浏览器退出

chrome.quit()

参考链接

https://www.cnblogs.com/xiaoyuanqujing/articles/11805718.html

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: