selenium是处理异步加载的一种方法
总的来说是操作浏览器访问来获取自己想要的资料
优点是浏览器能看到的都能爬下来,简单有效,不需要深入破解网页加载形式
缺点是加载的东西太多,导致爬取速度变慢
代码语言:javascript复制 1 #!/usr/bin/python3.4
2 # -*- coding: utf-8 -*-
3
4 from selenium import webdriver
5 import time
6
7 # http://www.cnblogs.com/fnng/p/3238685.html
8 # 打开火狐浏览器
9 browser = webdriver.Firefox()
10
11 # 输入网址
12 browser.get("http://www.baidu.com")
13 # 根据各自网速来判断网址加载时间
14 time.sleep(1)
15
16 # 输入框
17 # <input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">
18
19 # 清空输入框
20 browser.find_element_by_id("kw").clear()
21
22 # 通过id方式定位
23 browser.find_element_by_id("kw").send_keys("selenium")
24 # 通过name方式定位
25 # browser.find_element_by_name("wd").send_keys("selenium")
26 # 通过tag name方式定位
27 # browser.find_element_by_tag_name("input").send_keys("selenium")
28 # 通过class name 方式定位
29 # browser.find_element_by_class_name("s_ipt").send_keys("selenium")
30 # 通过CSS方式定位
31 # browser.find_element_by_css_selector("#kw").send_keys("selenium")
32 # 通过xphan方式定位
33 # browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
34
35 # 点击“百度一下”
36 browser.find_element_by_id("su").click()
37
38 # 下面就是xpath的知识了
39 # 想找那个网页的什么东西自己写xpath
40 # 可以参考前面的博客:http://www.cnblogs.com/TTyb/p/5832790.html
41 print(browser.find_element_by_xpath("//a"))
42 time.sleep(5)
43 browser.quit()
代码语言:javascript复制# 获得当前html
html = browser.page_source