程序媛计划——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()

效果:

 

posted @ 2017-09-08 15:58  IcarusYu  阅读(462)  评论(0编辑  收藏  举报