#用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. resin-pro-4.0.53报错java.lang.Error: java.lang.ClassNotFoundException: com.caucho.loader.SystemClassLoader

    最初并未发现,笔者的系统环境变量JAVA_HOME变量设置错误 D:\develop\Java\x64\jdk1.8.0_144 #最初使用了阉割版的JDK 改成完整安装的JDK就可以 D:\deve ...

  2. Django配置Bootstrap, js

    1.首先在APP目录下创建一个static文件夹 如图: # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'dj ...

  3. 768A Oath of the Night's Watch

    A. Oath of the Night's Watch time limit per test 2 seconds memory limit per test 256 megabytes input ...

  4. 品味性能之道<十>:Oracle Hint

    Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式. 因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Ora ...

  5. 在jmeter的beanshell中用java获取系统当前时间

    import java.util.*; int y,m,d,h,mi,s; Calendar cal=Calendar.getInstance(); y=cal.get(Calendar.YEAR); ...

  6. 8个设计师必看的免费UI图标设计资源站

    图标是我们日常APP及网页设计过程中必不可少的元素之一,通过小小的图标,可以快速方便的实现视觉引导和功能划分.在创作时,我们需要寻找各种各样的图标来满足自己的设计需求,非常浪费时间和精力.今天,小编给 ...

  7. break MISSING_BLOCK_LABEL_160; 看源代码出现的,源代码是反编译的

    break MISSING_BLOCK_LABEL_160; FileNotFoundException fnfe; fnfe; out.close(); throw fnfe; in.close() ...

  8. window.name跨域实现

    参考:window.name实现的跨域数据传输 有三个页面: a.com/app.html:应用页面. a.com/proxy.html:代理文件,一般是一个没有任何内容的html文件,需要和应用页面 ...

  9. EnrichPipeline文档

    https://sourceforge.net/projects/enrichmentpipeline/

  10. 前端之css笔记3

    一 display属性 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...