程序媛计划——python爬虫
#用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爬虫的更多相关文章
- 程序媛计划——python socket通信
定义 socket 是进程间的一种通信方式,可以实现不同主机间的数据传输 #写服务期端程序server.py #实现服务器向客户端连接 #!/usr/bin/env python #coding:ut ...
- 程序媛计划——python数据库
#实例:用数据库存储日记,实现日记本功能 #流程 #创建数据库 #coding:utf-8 import sqlite3 connect=sqlite3.connect('test.db') conn ...
- 程序媛计划——python中级课时1
class1 异常处理 #python会把标准输入的内容当作字符串处理,即使输入的是数字3也会转化为字符串’3’. n1 = raw_input() n2 = raw_input() print n1 ...
- 程序媛计划——python正则表达式
#定义 正则表达式是对字符串操作的一种逻辑公式,通过它我们能筛选过滤出我们需要的内容,如判断一串数字是否是电话号码. #原理 先把正则表达式的字符串转换成 Pattern 对象,接着用这个对象处理文本 ...
- 程序媛计划——python初级课时3~5
产生1-10中的随机数: for 循环:所有可遍历对象都能用于for循环,如一个字符串. len(list),list中的元素类型可以各不相同:可以直接用下标对list元素赋值来更新列表 对字符串可以 ...
- 程序媛计划——python初级课时1~2
在命令行中运行py文件:python 文件路径/文件名 python变量必须赋值后才能使用,因为py变量只有赋值后才会被创建. py可以同时给多个变量赋值:a,b,c = 10,20,'dfjkdj' ...
- 程序媛计划——python初级class5~13
列表和元组都是可迭代对象(可以用于for in) 列表 [] #添加列表元素: list.append(argu) #修改列表: list[2] = 2017 #删除列表元素 Del list[2] ...
- 程序媛计划——SQLite初级
数据库简介 数据库定义: 指的是以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度.与应用程序彼此独立的数据集合.是带有相关数据的表的集合. 数据库是由行和列组成的二维表. 字段: 数据库表 ...
- 程序媛计划——mysql外键
定义 外键:如果一个表的某个字段指向另一个表的主键,就称之为外键.被指向的表,称之为主表,也叫父表,那么另一个表就是从表,也叫子表 #先新建两个表 mysql> create table aut ...
随机推荐
- Task/Parallel实现异步多线程
代码: #region Task 异步多线程,Task是基于ThreadPool实现的 { //TestClass testClass = new TestClass(); //Action<o ...
- IIS文件名解析漏洞扼要分析
概括: 从技术角度分析IIS6文件名解析漏洞的原理与IIS7的相关情况. a.IIS6错误解析文件类型现象 1.当WEB目录下,文件名以 xxx.asp;xxx.xxx 来进行命名的时候,此文件将送交 ...
- OpenSSL编程
简介 OpenSSL是一个功能丰富且自包含的开源安全工具箱.它提供的主要功能有:SSL协议实现(包括SSLv2.SSLv3和TLSv1).大量软算法(对称/非对称/摘要).大数运算.非对称算法密钥生成 ...
- 在Excel中根据某一个单元格的出生日期自动精确计算年龄
=IF(MONTH(NOW())<MONTH(G4),INT(YEAR(NOW())-YEAR(G4))-1,IF(MONTH(NOW())>MONTH(G4),YEAR(NOW())-Y ...
- Jmeter获取不到cookie(备注:前面和后面的几个步骤都可以获取到cookie)
今天的一个Jmeter脚本,有一个HTTP request始终获取不到cookie,但其前面和后面的几个步骤都可以获取到cookie,报文的请求服务器地址都是照着fiddler上面填的,没有问题,后来 ...
- 将C语言宏定义数值转换成字符串!
将C语言宏定义转换成字符串! 摘自:https://blog.csdn.net/happen23/article/details/50602667 2016年01月28日 19:15:47 六个九十度 ...
- 管理型交换机IEEE 802.1Q VLAN设置应用实例
转载标注: IEEE802.1Q 我粗略理解为对交换机入口规则和出口规则设置,入口打上VID,设置从哪些口可以出去,并且是否带标签. 一 VLAN的概念 VLAN(Virtual Local Area ...
- 2018.09.09 bzoj4403: 序列统计(Lucas定理)
传送门 感觉单调不降序列什么的不好做啊. 于是我们序列中下标为i的元素的值加上i,这样就构成了一个单调递增的序列. 问题就变成了: 求出构造长度分别为1 ~ n且每个元素的值在l+1 ~ r+n之间的 ...
- HDU 1061 Rightmost Digit (快速幂取模)
题意:给定一个数,求n^n的个位数. 析:很简单么,不就是快速幂么,取余10,所以不用说了,如果不会快速幂,这个题肯定是周期的, 找一下就OK了. 代码如下: #include <iostrea ...
- nodejs中如何使用mysql数据库[node-mysql翻译]
nodejs中如何使用mysql数据库 db-mysql因为node-waf: not found已经不能使用,可以使用mysql代替. 本文主要是[node-mysql]: https://www. ...