zoukankan      html  css  js  c++  java
  • 程序媛计划——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+'
    '
    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+'
    '
    18             i+=1
    19         #还可以在类的方法中调用该类中定义的另一个方法
    20         self.quit()
    21 
    22     def quit(self):
    23         self.dir.quit()
    24 #这里Qiubai()是Qiubai的一个实例,只是没有设置一个变量指向这个实例而已
    25 Qiubai().print_content()

    效果:

  • 相关阅读:
    Linux下安装Mysql
    mssql 查询效率
    查看apache是否安装及版本
    centos(linux)切换用户
    mysql操作命令(linux)
    远程连接MySql连不上1130
    JAVA环境配置
    SQLSERVER2012数据库还原
    ASP连接ACCESS数据库
    ODOO 常用widget
  • 原文地址:https://www.cnblogs.com/IcarusYu/p/7495084.html
Copyright © 2011-2022 走看看