Python3 Selenium+ChromeDriver抓取动态网页

以前抓取动态网页是用PhantomJS + Selenium + ChromeDriver,但是新版的Selenium不支持PhantomJS了,程序跑的时候总会跳出一些warnings.

现在的操作是放弃PhantomJS,直接用headless ChromeDriver。可直接在Google主页下载个ChromeDriver,都是支持headless的。

下面的程序就是启动driver,抓取数据,关闭driver的例子。记得要关掉driver,不然会占内存。

# -*- coding: UTF-8 -*-
'''
@version: Python 3.6
@introduction:
@author: 
@date: 2018-3
'''
 
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
 
# 启动driver
def init_web_driver():
    global driver
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    driver_path = 'E:\chromedriver.exe'    #这里放的就是下载的driver本地路径
    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path = driver_path)
 
# 关掉driver
def close_web_driver():
    driver.quit()
 
def get_data():
    driver.get('https://www.baidu.com')
  driver.implicitly_wait(10)  # wait up to 10 seconds for the elements to become available
    # ======  网页中静态部分抓取,采用BeautifulSoup去解析   
    html = driver.page_source    # 获取网页html
    html_soup = BeautifulSoup(html.text,"lxml")
    time.sleep(0.1)
    coin_list = html_soup .find(name='table', attrs={"class": "table maintable"})
    # 页面元素的提取请查看 BeautifulSoup的用法
    # ====== 网页中动态部分抓取,采用driver自带的方法
    # 下面展示的从调用百度搜索,在搜索框中输入"headless chrome",然后获取结果。具体自行百度driver的用法
    text = driver.find_element_by_css_selector('#kw')
    search = driver.find_element_by_css_selector('#su')
    text.send_keys('headless chrome')
    # search
    search.click()
    driver.get_screenshot_as_file('search-result.png')
    results = driver.find_elements_by_xpath('//div[@class="result c-container "]')
    for result in results:
        res = result.find_element_by_css_selector('a')
        title = res.text
        link = res.get_attribute('href')
        print ('Title: %s \nLink: %s\n' % (title, link) )
 
 
if __name__ == '__main__':
    init_web_driver()
    get_data()
    close_web_driver()
​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值