程序媛计划——python爬虫
#用selenium打开百度首页
#第一次运行代码时应该在safari开发者选项中设置'allow remote automation'
1 from selenium import webdriver 2 browser=webdriver.Safari() 3 browser.get('http://www.baidu.com/')
#远程打开百度首页,并搜索关键词并打印搜索关键词后的源代码
1 from selenium import webdriver 2 from selenium.webdriver.common.keys import Keys 3 driver = webdriver.Safari() 4 driver.get('http://www.baidu.com/') 5 6 #获取web中名字为wd的标签 7 elem = driver.find_element_by_name("wd") 8 #搜索cxy61 9 elem.send_keys("cxy61") 10 elem.send_keys(Keys.RETURN) 11 12 print driver.page_source
分析网页源代码
#safari偏好设置中点击在菜单中显示'开发者’选项
#在开发中点击显示网页检查器(command+option+i)
打印我们筛选后真正需要的爬下来的数据
1 #coding:utf-8 2 from selenium import webdriver 3 from selenium.webdriver.common.keys import Keys 4 5 dr = webdriver.Safari() 6 dr.get('https://www.qiushibaike.com') 7 #在控制台中发现糗事百科左边都是内容,右边是广告,而左边标签id都是content-left 8 #获取id为content-left的[标签] 9 main_content = dr.find_element_by_id('content-left') 10 content = main_content.find_elements_by_class_name('content') 11 i=1 12 for want2see in content: 13 print str(i)+want2see.text+'\n' 14 i+=1 15 16 #退出我们打开的浏览器 17 dr.quit()
用类封装实现爬虫
1 #coding:utf-8 2 from selenium import webdriver 3 class Qiubai(object): 4 def __init__(self): 5 #这步干嘛 6 self.dir=webdriver.Safari() 7 #所以在初始化实例时还能进行打开网页的操作 8 self.dir.get('https://www.qiushibaike.com') 9 10 def print_content(self): 11 #相比较于没有用类实现的爬虫,dir放在__init__方法中定义 12 #下面两行代码中的element和elements的区别? 13 main_content=self.dir.find_element_by_id('content-left') 14 self.content = main_content.find_elements_by_class_name('content') 15 i=1 16 for con in self.content: 17 print str(i)+con.text+'\n' 18 i+=1 19 #还可以在类的方法中调用该类中定义的另一个方法 20 self.quit() 21 22 def quit(self): 23 self.dir.quit() 24 #这里Qiubai()是Qiubai的一个实例,只是没有设置一个变量指向这个实例而已 25 Qiubai().print_content()
效果: