python chrome headless_基于Python+Selenium+Chrome headless 模式入门

# 引入休眠等待库

import time

# 引入selenium的浏览器驱动接口

from selenium import webdriver

# 引入chrome选项

from selenium.webdriver.chrome.options import Options

# 配置chrome浏览器(无头模式)

chrome_options = Options()

chrome_options.add_argument('--headless')

driver = webdriver.Chrome(chrome_options=chrome_options)

# 没有写错,就是要页面够长.不然页面内容会点不到 (第一个坑)

driver.set_window_size(1024, 7680)

# 加载页面

driver.get("https://www.example.com")

# 这里进行嵌套,模拟点击打开详细页,可以抓取详细内容

for i in range(1,21):

# 根据css中的class查找对应的element 集合

counts = len(driver.find_elements_by_css_selector(".item_con_list .position_link"))

print ("第" + str(i) + "页,本页共有:" + str(counts) + "条记录")

for j in range(counts):

# 新开一个窗口

url = driver.find_elements_by_css_selector(".item_con_list .position_link")[j]

print('  跳转第' + str(j) + "条:" + url.get_attribute("href"))

url.click()

time.sleep(1)

# 获取当前窗口句柄集合

handles = driver.window_handles

# 切换窗口

for handle in handles:

if handle!=driver.current_window_handle:

driver.switch_to_window(handle)

# 找到内容

try:

data = driver.find_element_by_class_name("job_bt").text

except:

print("这个页面没拿到内容")

driver.save_screenshot(i+str(j)+".png")

# 写入内容 ,要保持编码一致,不然会出现保存出错 (第二个坑)

fileObject = open('example.txt', 'a', encoding='utf-8')

fileObject.write(data)

fileObject.write('\n')

fileObject.close()

break

#关闭当前窗口

driver.close()

#切换(主)窗口

driver.switch_to_window(handles[0])

time.sleep(1)

#生成当前页面快照,调试用的

driver.save_screenshot("current.png")

# 跳转到下一页

driver.find_element_by_class_name("pager_next").click()

print("跳转到下一页")

time.sleep(5)

# 关闭浏览器

driver.quit()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值