selenium爬虫总结

 

一、配置 chrome浏览器选项:https://blog.csdn.net/zwq912318834/article/details/78933910

 理论上完成环境变量配置之后,executable_path可以不用指定。

from selenium import webdriver
import time
chrome_option = webdriver.ChromeOptions()
chrome_option.add_argument('--headless')  #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
chrome_option.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
chrome_option.add_argument('--no-sandbox')  #  非沙盒模式运行
chrome_option.add_argument('--disable-dev-shm-usage') # 为了防止报错
driver = webdriver.Chrome(executable_path='C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe',
    chrome_options=chrome_option)

driver.set_page_load_timeout(600)  # 设置等待页面加载完成的最大时间

# 打开网页
url = 'https://www.baidu.com/'
driver.get(url)
time.sleep(3)

# 获取页面元素
elements = driver.find_elements_by_xpath(xxx)

二、 翻页

1、在url 里包含page,循环+1翻页

for i in range(1,50):
    url = 'http://www.yuluju.com/lizhimingyan/list_1_{}.html'.format(i)

2、动态加载的网页,观察谷歌浏览器的 Network 里的 xhr 下面的 Request URL

2.1  Request Method:GET。找到Request URL里变化的参数,在提取元素过程中提取得到下一个加载页的参数。

2.2 Request Method:POST。此时,Request  URL不发生改变。把From Data 下面的参数当做字典。使用requests.post() 方法得到需要的元素和参数。

三、xpath 使用

# 1,获取单个元素.获取百度首页的logo
one_element = driver.find_element_by_xpath('//div[@id="lg"]//img[@id="s_lg_img"]')
# 2,获取多个元素.获取百度首页的时事热点
elements = driver.find_elements_by_xpath('//li[@class="news-meta-item"]//a[@class="title-content"]')

当 引号里面的元素依然包含引号的时候。用 '' "" 分别表示。

你可能感兴趣的:(爬虫)