#用selenium打开百度首页

#第一次运行代码时应该在safari开发者选项中设置'allow remote automation'

 from selenium import webdriver
browser=webdriver.Safari()
browser.get('http://www.baidu.com/')

#远程打开百度首页,并搜索关键词并打印搜索关键词后的源代码

 from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Safari()
driver.get('http://www.baidu.com/') #获取web中名字为wd的标签
elem = driver.find_element_by_name("wd")
#搜索cxy61
elem.send_keys("cxy61")
elem.send_keys(Keys.RETURN) print driver.page_source

分析网页源代码

#safari偏好设置中点击在菜单中显示'开发者’选项

#在开发中点击显示网页检查器(command+option+i)

打印我们筛选后真正需要的爬下来的数据

 #coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys dr = webdriver.Safari()
dr.get('https://www.qiushibaike.com')
#在控制台中发现糗事百科左边都是内容,右边是广告,而左边标签id都是content-left
#获取id为content-left的[标签]
main_content = dr.find_element_by_id('content-left')
content = main_content.find_elements_by_class_name('content')
i=1
for want2see in content:
print str(i)+want2see.text+'\n'
i+=1 #退出我们打开的浏览器
dr.quit()

用类封装实现爬虫

 #coding:utf-8
from selenium import webdriver
class Qiubai(object):
def __init__(self):
#这步干嘛
self.dir=webdriver.Safari()
#所以在初始化实例时还能进行打开网页的操作
self.dir.get('https://www.qiushibaike.com') def print_content(self):
#相比较于没有用类实现的爬虫,dir放在__init__方法中定义
#下面两行代码中的element和elements的区别?
main_content=self.dir.find_element_by_id('content-left')
self.content = main_content.find_elements_by_class_name('content')
i=1
for con in self.content:
print str(i)+con.text+'\n'
i+=1
#还可以在类的方法中调用该类中定义的另一个方法
self.quit() def quit(self):
self.dir.quit()
#这里Qiubai()是Qiubai的一个实例,只是没有设置一个变量指向这个实例而已
Qiubai().print_content()

效果:

程序媛计划——python爬虫的更多相关文章

  1. 程序媛计划——python socket通信

    定义 socket 是进程间的一种通信方式,可以实现不同主机间的数据传输 #写服务期端程序server.py #实现服务器向客户端连接 #!/usr/bin/env python #coding:ut ...

  2. 程序媛计划——python数据库

    #实例:用数据库存储日记,实现日记本功能 #流程 #创建数据库 #coding:utf-8 import sqlite3 connect=sqlite3.connect('test.db') conn ...

  3. 程序媛计划——python中级课时1

    class1 异常处理 #python会把标准输入的内容当作字符串处理,即使输入的是数字3也会转化为字符串’3’. n1 = raw_input() n2 = raw_input() print n1 ...

  4. 程序媛计划——python正则表达式

    #定义 正则表达式是对字符串操作的一种逻辑公式,通过它我们能筛选过滤出我们需要的内容,如判断一串数字是否是电话号码. #原理 先把正则表达式的字符串转换成 Pattern 对象,接着用这个对象处理文本 ...

  5. 程序媛计划——python初级课时3~5

    产生1-10中的随机数: for 循环:所有可遍历对象都能用于for循环,如一个字符串. len(list),list中的元素类型可以各不相同:可以直接用下标对list元素赋值来更新列表 对字符串可以 ...

  6. 程序媛计划——python初级课时1~2

    在命令行中运行py文件:python 文件路径/文件名 python变量必须赋值后才能使用,因为py变量只有赋值后才会被创建. py可以同时给多个变量赋值:a,b,c = 10,20,'dfjkdj' ...

  7. 程序媛计划——python初级class5~13

    列表和元组都是可迭代对象(可以用于for in) 列表 [] #添加列表元素: list.append(argu) #修改列表: list[2] = 2017 #删除列表元素 Del list[2] ...

  8. 程序媛计划——SQLite初级

    数据库简介 数据库定义: 指的是以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合.是带有相关数据的表的集合. 数据库是由行和列组成的二维表. 字段: 数据库表 ...

  9. 程序媛计划——mysql外键

    定义 外键:如果一个表的某个字段指向另一个表的主键,就称之为外键.被指向的表,称之为主表,也叫父表,那么另一个表就是从表,也叫子表 #先新建两个表 mysql> create table aut ...

随机推荐

  1. Vmware迁移以后eth0消失,无法上网

    一个再普通不过的大神帮助小菜做虚拟机镜像的事情: 小张:帮我做个Vmware下的Ubuntu镜像吧,大神. 小黄:好啊,等我一下,下午发给你. 经过一番操作,小黄顺利的做出了一个虚拟机操作系统 小黄: ...

  2. Django之XSS攻击

    一.什么是XSS攻击 xss攻击:----->web注入    xss跨站脚本攻击(Cross site script,简称xss)是一种“HTML注入”,由于攻击的脚本多数时候是跨域的,所以称 ...

  3. git保护进程

    https://github.com/Mattiwatti/PPLKiller 去掉进程保护内核级

  4. 学习GIT 版本控制的好去处 另GDB资料

    廖雪峰的官方网站 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 作者不仅仅是做技 ...

  5. MyIocp 测试截图

    根据 小猪的网络教程 学习了 IOCP 并且自己写了一个命令行版本的 客户端测试还是使用的小猪的代码 有兴趣学习IOCP的 建议去小猪的空间看看 代码思路都讲解的很清楚 推荐 http://blog. ...

  6. java Exception in thread "main" java.lang.NoClassDefFoundError: main (wrong name: pm/main)

    javac main.java 编译后没有问题 java main 出现下面在问题: Exception in thread "main" java.lang.NoClassDef ...

  7. 前端学习—React—初出茅庐

    React学习—初出茅庐 对与React的学习思路,首先React中用到了Class.let.const.以及modual(模块)的导入(import)和导出(export),而这些都是ECMAScr ...

  8. py-函数进阶

    名称空间 又名name space, 顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方 名称空间共3种, ...

  9. 20155218 2016-2017-2 《Java程序设计》第6周学习总结

    20155218 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象. dump()方 ...

  10. 大文件webuploader的基本使用

    webuploader的简单使用 需要的文件   自备  百度很多 webuploader.js  uploader.swf  jQuery <!DOCTYPE html> <htm ...