python抓取动态网页(python爬取js执行后输出的信息-苏州安嘉)

优采云 发布时间: 2021-12-29 09:20

  python抓取动态网页(python爬取js执行后输出的信息-苏州安嘉)

  Python有很多库,可以让我们轻松编写网络爬虫,抓取某些页面,获取有价值的信息!但是很多时候,爬虫抓取到的页面只是一个静态页面,也就是网页的源代码,就像在浏览器上“查看网页的源代码”一样。一些动态的东西,比如一个javascript脚本执行后产生的信息,是无法捕捉到的。这里暂时给出一些解决方案,可以用于python爬取js执行后输出的信息。

  1、两种基本解决方案

  1.1 使用dryscrape库动态抓取页面

  js脚本通过浏览器执行并返回信息。所以js执行后抓取页面最直接的方法之一就是用python模拟浏览器的行为。WebKit是一个开源的浏览器引擎,python提供了很多库来调用这个引擎,dryscrape就是其中之一,它调用webkit引擎来处理收录

js等的网页!

  *敏*感*词*干刮

  #使用dryscrape库动态抓取页面

  defget_url_dynamic(url):

  session_req=dryscrape.Session()

  session_req.visit(url)#请求页面

  response=session_req.body()#网页正文

  #打印(响应)

  回复回复

  get_text_line(get_url_dynamic(url))#将输出一个文本

  这也适用于其他收录

js的网页!虽然可以满足抓取动态页面的要求,但是缺点还是很明显:慢!太慢了。其实想想也是有道理的。Python调用webkit来请求页面,页面加载完成后,加载js文件,让js执行,返回执行的页面。应该会更慢!另外,可以调用webkit的库还有很多:PythonWebkit、PyWebKitGit、Pygt(你可以用它来写浏览器)、pyjamas等等,听说它们也可以实现同样的功能!

  1.2 selenium web 测试框架

  Selenium 是一个网页测试框架,它允许调用本地浏览器引擎发送网页请求,因此也可以实现抓取网页的要求。

  # 使用selenium webdriver是可行的,但是会实时打开浏览器窗口

  defget_url_dynamic2(url):

  driver=webdriver.Firefox()#调用本地火狐浏览器,Chrom甚至Ie也可以

  driver.get(url)#请求一个页面,会打开一个浏览器窗口

  html_text=driver.page_source

  驱动程序退出()

  #printhtml_text

  返回html_text

  get_text_line(get_url_dynamic2(url))#将输出一个文本

  这也是临时解决办法!类似selenium的框架也有风车,感觉稍微复杂一点,就不赘述了!

  2、selenium的安装和使用

  2.1 selenium的安装

  要在 Ubuntu 上安装,您可以直接使用 pip install selenium。由于以下原因:

  1. selenium 3.x 启动,在 webdriver/firefox/webdriver.py 的 __init__ 中,executable_path="geckodriver"; 并且 2.x 是 executable_path="wires"

  2. Firefox 47 及以上,需要下载第三方驱动,geckodriver

  还需要一些特殊的操作:

  1. 下载geckodriverckod地址:

  mozilla/geckodriver

  2. 解压后,将geckodriverckod存放在/usr/local/bin/路径下:

  sudomv~/Downloads/geckodriver/usr/local/bin/

  2.2 selenium的使用

  1. 运行错误:

  驱动程序 = webdriver.chrome()

  类型错误:“模块”对象不可调用

  解决方法:浏览器名称需要大写Chrome和Firefox,即

  2. 通过

  content=driver.find_element_by_class_name('content')

  为了定位元素,该方法返回 FirefoxWebElement。当你想获取收录

的值时,你可以通过

  值=内容.文本

  这篇关于如何用python爬取动态网站的文章到此结束。更多关于如何用python爬取动态网站的相关内容,请搜索我们之前的文章或继续浏览下面的相关文章。希望大家以后多多支持我们!

  文章名称:python如何抓取动态网站

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线