selenium动态爬取猫眼前top100

学了一段时间的selenium了,写一点小的心得

  • 开始是用的request写的爬虫,后来有的网站不能直接通过request get到网站源码,有的是有加密处理的。然后就开始了学习selenium的道路了,selenium自动化工具,可以自动的打开网站(也叫模拟人打开网页的动作)通过代码控制你想打开的网站,然后就可以通过这个打开的网页动态爬取你想要的信息了,即可见即可爬。

接下来是一点点笔记:

  1. selenium用到的是selenium中webdriver

        from selenium import webdriver
    
  2. webdriver提供了浏览器的启动接口

      webdriver.Firefox()
    
  3. 多窗口切换 这里的多窗口是指的,多个窗口,不是一个窗口多次进入不同的网址。
    通过browser.window_handles方法得到窗口的句柄,通过browser.switch_to.window()来切换窗口。

      browser.execute_script('window.open("http://www.baidu.com")') 
    

    打开一个新的百度窗口

  4. current_url    获取当前页面的url;
    page_source   获取当前页面的源码;
    title        获取当前页面的title;

最后就是爬取猫眼电影的前top100:

from selenium import webdriver
import re
import time

def get_html():
    browser = webdriver.Firefox()
    browser.get('https://maoyan.com/board/4?offset=0')
    html = browser.page_source
    items = get_item(html)
    for item in items:
        print(item)
    time.sleep(2)

    for offset in range(2, 11):
        button = browser.find_element_by_class_name('page_' + str(offset))
        button.click()  # 点击搜索按钮进行搜索
        html = browser.page_source
        items = get_item(html)
        for item in items:
            print(item)
        time.sleep(2)

def get_item(html):
    pattern = re.compile('<dd>.*?board-index.*?>(.*?)<.*?name.*?a.*?>(.*?)<.*?主演:(.*?)<.*?时间:(.*?)<.*?', re.S)
    items = re.findall(pattern, html)
    return items

if __name__ == '__main__':
    get_html()

我是用re搜索匹配的,还没用到xpath匹配,xpath更方便点。之后会更新xpath匹配的。
由于也在学的阶段,有的部分是看书上的(崔庆才的python3网络爬虫开发实战)。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值