动态网页抓取(selenium动态网页有两种方法:1.分析网页找到真实网页地址)

优采云 发布时间: 2021-12-02 05:14

  动态网页抓取(selenium动态网页有两种方法:1.分析网页找到真实网页地址)

  selenium的安装和使用

  一.评论

  我们之前抓取的网页被列为*敏*感*词*。起点中文网站都是静态网页。此类网页在浏览器中显示的内容都在HTML源代码中。但是现在很多网站都使用JavaScript来展示网页内容,这时候静态网页爬取技术就不行了。爬取动态网页有两种方式:

  1.分析网页,找到真实的网页地址(比如爬取中财网的双色球信息实例),

  2.使用selenium模拟浏览器。

  二.Selenium 介绍和安装

  1.什么是硒?

  Selenium 也是一种用于 Web 应用程序测试的工具。Selenium 测试直接在浏览器中运行,就像真实用户在操作一样。支持的浏览器包括 IE、Mozilla Firefox、Mozilla Suite 等。

  2.安装

  只需使用 pip 命令安装它!

  pip install selenium

  安装可能会失败。请多试几次。如果下载太慢,我们可以用pip换源,重新下载。

  部分国内资源:

  阿里云

  中国科学技术大学

  豆瓣

  清华大学

  中国科学技术大学

  具体步骤:

  

  如图,进入用户目录下APPData下Local下的pip文件夹,不创建就创建了。创建 pip.ini 文件并复制以下代码并保存。

  [global]

timeout=6000

index-url=https://pypi.tuna.tsinghua.edu.cn/simple

  三.浏览器选择与安装

  1.查看selenium webdriver支持的浏览器类型

  from selenium import webdriver

help(webdriver)

  常用的浏览器有phantomjs、Google Firefox

  2.安装phantomjs

  官网下载:""

  安装:将phantomjs压缩包中的可执行文件添加到python目录下。如果使用anaconda,添加到anaconda目录下(与python.exe同级)

  如图:

  

  3.测试

  输入python,输入以下命令没有错误!

  from selenium import webdriver

driver=webdriver.PathtomJS()

  四.申请

  我们使用百度来测试selenium+phantomjs的功能。测试模拟输入关键字进行搜索。这里我们使用了一种新的元素定位方法xpath

  有兴趣的可以阅读菜鸟教程《》学习他的语法

  #! -*- encoding:utf-8 -*-

from selenium import webdriver

browser=webdriver.PhantomJS()

browser.get('http://www.baidu.com')

browser.implicitly_wait(10) #他是一个智能等待函数 因为利用JS引擎运行需要时间

#找到页面表单的文本框

textElement=browser.find_element_by_id('kw')

textElement.send_keys('python selenium') #模拟按键输入

#找到提交按钮

submitElement=browser.find_element_by_id('su')

submitElement.click() #点击元素

print (browser.title)

#xpath解析

"""

定位网页中的元素(locate elements)

find_element_by_id

find_element_by_name

find_element_by_xpath

find_element_by_link_text

find_element_by_partial_link_text

find_element_by_tag_name

find_element_by_class_name

find_element_by_css_selector

操作元素方法:

clear 清除元素的内容

send_keys 模拟按键输入

click 点击元素

submit 提交表单

"""

  有很多浏览器选择。这里选择的是.PhantomJS(),它没有接口。

  除了选择:browser=webdriver.PhantomJS(),还可以选择谷歌火狐等有界面的浏览器(前提是电脑有这样的浏览器)。例如,我们可以选择:

  browser=webdriver.Chrome()

browser=webdriver.Firefox()

  但是如果直接使用,就会报错

  

  根据提示,我们知道我们缺少“geckodriver”,我们可以在线下载

  “”

  记得下载与你的浏览器版本一致或兼容的geckodriver,然后放到你的火狐浏览器目录下

  

  这同样适用于 Google Chrome 的安装。如果Chromedriver版本与浏览器不兼容,可能会出现以下问题:

  

  版本参考:

  Chrome 驱动程序:"

  司机:””

  最好在路径中添加环境变量

  

  小路:

  

  这里的坑已经快填满了。遇到问题一定要记得百度。环境搭建好后,爬虫就会轻松愉快!

  参考文章:

  “”

  “”

  “”

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线