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()

    效果:

  • 相关阅读:
    微信小程序,答题问卷,单选,多选混合在一个借口,前端怎么循环
    react 从0到1
    react从0到0
    es6 系统总结
    点击页面的某个元素,弹出这个元素的索引(是第几个)
    js return的用法
    安装golang.org/x/*
    完美解决从github上下载东西慢的方法
    初探golang和应用其框架 gin 的 使用教程(一)安装篇
    CentOS7安装go开发环境
  • 原文地址:https://www.cnblogs.com/IcarusYu/p/7495084.html
Copyright © 2011-2022 走看看